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