У меня есть ситуация, когда некоторые из моих строк кода ссылаются на мои java-файлы, но у меня также есть разные java-файлы, которые ссылаются на один и тот же код groovy. Когда вы пытаетесь скомпилировать maven, мне нужно собрать компиляцию до или после java, и это не будет работать, поскольку код groovy зависит от некоторых java-файлов, а разные java-файлы зависят от кода groovy. Есть ли способ справиться с такой зависимостью?maven compile groovy
ответ
Вы должны скомпилировать свой код, добавив плагин gmaven к вашему maven pom.xml. Он генерирует Java-заглушки вашего groovy-кода, чтобы иметь дело с типом межязыкового реферирования, с которым вы имеете дело. Я использую его совсем немного, и он работает очень хорошо.
Вы можете разбить свой код слоями и сложить нижние слои верхнего уровня, но не наоборот. Например, в веб-приложении вы можете иметь уровень представления, уровень обслуживания и уровень сохранения. Уровень просмотра вызывает уровень обслуживания, а уровень обслуживания вызывает уровень сохранения, но уровень сохранения никогда не будет вызывать уровень обслуживания или уровень представления. Если вы хотите, чтобы код groovy/java существовал на одном слое, убедитесь, что вы вызываете другого, но оба они не звонят друг другу. Суть в том, что вам следует избегать двунаправленных зависимостей.
Да, просто используйте GMaven. Поскольку он является совместным компилятором, он автоматически управляет вашей java с помощью groovy и groovy для java-зависимостей.
Вкратце, вам необходимо:
- включают
gmaven-plugin
в вашемpom.xml
; - держите свои классные классы под
src/main/groovy
илиsrc/test/groovy
; - привязывает плагин gmaven к соответствующим этапам жизненного цикла.
Для получения более подробной информации см. building groovy projects.
- 1. Maven install/compile Failure
- 2. maven prevent denpendency compile
- 3. Connection Refused on maven compile
- 4. Flex Mojo Maven Compile Question
- 5. Maven compile: package не существует
- 6. Apache giraph compile using maven
- 7. Compile Groovy file with ant task
- 8. Maven «breaks» Groovy files
- 9. maven groovy stub generation
- 10. Плагины Groovy Maven
- 11. Maven: компилятор Groovy-Eclipse с Groovy 2.3.5
- 12. Ошибка при строительстве Maven существующего проекта Groovy
- 13. Inject Groovy в существующий проект Maven Java
- 14. проект Maven не удается найти Groovy класс
- 15. Игнорирование Проверить источник из Maven Compile
- 16. Vaadin Maven Spring Boot theme compile
- 17. Maven Groovy и Java + Lombok
- 18. Выполнение Groovy скрипт из Maven
- 19. Groovy и Maven: CompileStatic дженериков
- 20. Groovy CompileStatic на Android путает Groovy Правду
- 21. Компиляция Groovy с Maven и компилятором groovy-eclipse
- 22. Groovy & maven - скомпилируйте источники из src/main/groovy
- 23. Разница между «play compile» и «sbt compile»
- 24. Плагин Eclipse Maven не создает проект groovy-maven-archetype
- 25. Добавление Groovy Tests в Java Maven Project
- 26. Почему Maven хочет загрузить _all_ версии Groovy?
- 27. использовать groovy script для maven unit test
- 28. Вариант Maven Surefire «включить» для источников Groovy
- 29. Какова правильная конфигурация pom maven groovy gmaven?
- 30. Невозможно выполнить Groovy Maven Plugin как цель
-1 Существует совместный компилятор Groovy-Java. –
Это правда, но с двунаправленными зависимостями может привести к излишне сложному и менее обслуживаемому коду. В контексте этого вопроса я согласен с тем, что использование GMaven - правильный ответ, но я бы все же реорганизовал код для устранения или, по крайней мере, уменьшения двунаправленных отношений. – rich