Подтвердить что ты не робот

Maven compile groovy

У меня есть ситуация, когда некоторые из моих кодов groovy ссылаются на мои java файлы, но у меня также есть разные java файлы, которые ссылаются на один и тот же код groovy. При попытке скомпилировать в maven мне нужно либо скомпилировать groovy до, либо после java, и это не будет работать, поскольку код groovy зависит от некоторых java файлов, а разные java файлы зависят от groovy код. Есть ли способ справиться с такой зависимостью?

4b9b3361

Ответ 1

Вы должны скомпилировать свой код, добавив плагин gmaven к вашему maven pom.xml. Он генерирует Java-заглушки вашего кода groovy, чтобы иметь дело с типом ссылки на язык, на который вы ссылаетесь. Я использую его совсем немного, и он работает очень хорошо.

Ответ 2

Да, просто используйте GMaven. Поскольку это совлокальный компилятор, он автоматически управляет вашей java с groovy и groovy на java-зависимостями.

Вкратце, вам нужно будет:

  • укажите gmaven-plugin в pom.xml;
  • держите свои классы groovy под src/main/groovy или src/test/groovy;
  • привязать плагин gmaven к соответствующим этапам жизненного цикла.

Подробнее см. здание groovy проектов.

Ответ 3

Вы можете разбить свой код слоями и иметь нижние слои, которые вызывают верхние уровни, но никогда наоборот. Например, в веб-приложении вы можете иметь уровень представления, уровень обслуживания и уровень сохранения. Уровень просмотра вызывает уровень обслуживания, а уровень обслуживания вызывает уровень сохранения, но уровень сохранения никогда не будет вызывать уровень обслуживания или уровень представления. Если вы хотите, чтобы groovy/java-код существовал на одном и том же слое, убедитесь, что вы вызываете другого, но оба они не звонят друг другу. Суть в том, что вам следует избегать двунаправленных зависимостей.