Maven Compile Groovy
У меня есть ситуация, когда некоторые из моего кода на Groovy ссылаются на мои Java-файлы, но у меня также есть разные файлы Java, которые ссылаются на один и тот же Groovy-код. Когда я пытаюсь скомпилировать в maven, мне нужно либо скомпилировать groovy до или после java, и это не сработает, так как код groovy зависит от некоторых файлов java, а разные файлы java зависят от кода groovy. Есть ли способ справиться с такой зависимостью?
3 ответа
Вы должны быть в состоянии скомпилировать свой код, добавив плагин gmaven в свой maven pom.xml. Он генерирует Java-заглушки из вашего отличного кода, чтобы иметь дело с типом межязыковых ссылок, с которыми вы имеете дело. Я использую его совсем немного, и он работает очень хорошо.
Да, просто используйте GMaven. Так как это совместный компилятор, он автоматически управляет вашей Java-зависимостью от groovy и groovy до java.
Вкратце, вам нужно будет:
- включить
gmaven-plugin
в вашемpom.xml
; - держать ваши классные классы под
src/main/groovy
или жеsrc/test/groovy
; - привязать плагин gmaven к соответствующим фазам жизненного цикла.
Для более подробной информации смотрите строительные проекты.
Вы можете разбить ваш код на слои, и нижние уровни будут вызывать верхние уровни, но никогда наоборот. Например, в веб-приложении вы можете иметь слой представления, слой обслуживания и слой постоянства. Уровень представления вызывает уровень обслуживания, а уровень обслуживания вызывает уровень постоянства, но уровень сохранения никогда не вызовет уровень обслуживания или уровень представления. Если вы хотите, чтобы код groovy/java существовал в одном и том же слое, убедитесь, что один вызывает другой, но они оба не вызывают друг друга. Суть в том, что вам следует избегать двунаправленных зависимостей.