Проект Maven с несколькими исходными каталогами
1. Вступление
Иногда нам нужно использовать несколько исходных каталогов в проекте Java. Типичный пример, когда есть классы, которые генерируются автоматически и помещаются в другой каталог.
В этой короткой статье мы покажем, какset up Maven to work with additional source directories.
2. Добавление другого исходного каталога
Предполагая, что у нас уже есть проект Maven, давайте добавим новый исходный каталог с именемanother-src в папкуsrc/main.
После этого давайте создадим в этой папке простой класс Java:
public class Foo {
public static String foo() {
return "foo";
}
}
Теперь давайте создадим еще один класс в нашем каталогеsrc/main/java, который использует только что созданный классFoo:
public class MultipleSrcFolders {
public static void callFoo() {
Foo.foo();
}
}
Структура нашего проекта теперь выглядит так:
If we try to compile this project with Maven we get a compilation error, потому что классFoo не включен в проект:
[ERROR] .../MultipleSrcFolders.java:[6,9] cannot find symbol
[ERROR] symbol: variable Foo
[ERROR] location: class com.example.maven.plugins.MultipleSrcFolders
3. Использование плагинаBuilder Helper
С Maven мы можем использовать плагинBuilder Helper для добавления дополнительных каталогов исходного кода. Этот плагин позволяет нам настраивать жизненный цикл сборки различными способами.
Одна из его целей -add-sources, который предназначен для добавления дополнительных каталогов src в проект на этапеgenerate-sources.
Мы можем использовать его в нашем проекте, добавив его в нашpom.xml:
org.codehaus.mojo
build-helper-maven-plugin
3.0.0
generate-sources
add-source
Последнюю версию плагина можно найти вMaven Central.
Если мы сейчас скомпилируем наш проект, сборка будет успешной.
4. Заключение
В этой статье мы видели, как настроить плагинBuilder Helper Maven для работы с несколькими каталогами src в проекте Maven.
Как всегда, доступен полный исходный код примеровover on GitHub.