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 существовал в одном слое, убедитесь, что один вызывает другой, но они оба не вызывают друг друга другой. Суть в том, что вы должны избегать двунаправленных зависимостей.