Есть ли способ собрать несколько исходных каталогов Java в одном проекте Maven?
195
Вы можете добавить новый исходный каталог с помощью build-helper:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>src/main/generated</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
plugin
элемент в,/project/build/plugins
а не в/project/build/pluginManagement/plugins
m2e connector for build-helper-maven-plugin
с рынка eclipse, чтобы устранить ошибку в pom.xml'build.plugins.plugin.version' for org.codehaus.mojo:build-helper-maven-plugin is missing
вам нужно добавить в<plugin>
тег<version>1.12</version>
Я наивно так поступаю
источник
Это сработало для меня
источник
sourceDirectory
- и, возможно, дополнительныеsources
- в качестве корней исходных файлов. В вашем решении,maven-compiler-plugin
единственный плагин знает об этих фактических корнях.чтобы он работал в intelliJ, вы также можете добавить
в maven-компилятор-плагин
источник
Это также работает с Maven путем определения тега ресурсов. Вы можете называть имена папок src как угодно.
источник
Resources are not (usually) code. They are not compiled
Это работало для maven 3.5.4, и теперь Intellij Idea видит этот код в качестве источника:
источник
Использовал build-helper-maven-plugin из поста - и обновил src / main / generate. И mvn clean compile работает на моем ../common/src/main/java или на ../common, поэтому сохранил последнее. Тогда да, подтверждая, что уровень компиляции IntelliJ IDEA (версия 10.5.2) не удался, как упоминал Дэвид Филлипс. Проблема заключалась в том, что IDEA не добавлял в проект другой источник root. Добавление его вручную решило проблему. Это нехорошо, так как редактирование чего-либо в проекте должно происходить от maven, а не от прямого редактирования опций проекта IDEA. Тем не менее, я буду в состоянии жить с ним, пока они не будут напрямую поддерживать build-helper-maven-plugin, так что он будет автоматически добавлять исходники.
Тогда нужен был другой обходной путь, чтобы сделать эту работу все же. Так как каждый раз, когда IDEA повторно импортировал настройки maven после смены pom, вновь добавленный источник сохранялся в модуле, но он терял выбор папок источника и был бесполезен. Так что для ИДЕИ - нужно установить их один раз:
Сохранение этих папок при импорте также не является лучшей практикой в мире, ... но стоит попробовать.
источник
Хотя ответ от evokk в основном правильный, в нем отсутствуют тестовые классы . Вы должны добавить тестовые классы с целью add-test-source :
источник
Это можно сделать в два этапа:
${build.directory}
Если вы работаете с запущенным Jetty (
jetty:run
), то перекомпиляция любого класса в любом модуле (с Maven, IDEA или Eclipse) приведет к перезапуску Jetty. То же самое поведение вы получите для измененных ресурсов.источник
В конфигурации вы можете использовать
<compileSourceRoots>
.это все конфигурации, доступные для версии 3.8.1 плагина компилятора. Разные версии имеют разные конфигурации, которые вы можете найти, запустив код
-X
после общей команды mvn. подобнопоиск по идентификатору, цели или названию плагина. Это может помочь и с другими плагинами. Eclipse, intelliJ может показывать не все конфигурации в качестве предложений.
источник