1. Введение
Иногда нам нужно использовать несколько исходных каталогов в проекте Java. Типичный пример, когда есть классы, которые генерируются автоматически и помещаются в другой каталог.
В этой небольшой статье мы покажем, как настроить Maven для работы с дополнительными исходными каталогами .
2. Добавление еще одного исходного каталога
Предполагая, что у нас уже есть проект Maven, давайте добавим новый исходный каталог с именем other-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();
}
}
Структура нашего проекта теперь выглядит так:
Если мы попытаемся скомпилировать этот проект с помощью Maven, мы получим ошибку компиляции, потому что класс Foo
не включен в проект:
[ERROR] .../MultipleSrcFolders.java:[6,9] cannot find symbol
[ERROR] symbol: variable Foo
[ERROR] location: class com.foreach.maven.plugins.MultipleSrcFolders
3. Использование плагина Builder Helper
С Maven мы можем использовать плагин Builder Helper
, чтобы добавить больше исходных каталогов. Этот плагин позволяет нам по-разному настраивать жизненный цикл сборки.
Одной из его целей является add-sources
, который предназначен для добавления дополнительных каталогов src в проект на этапе генерации источников
.
Мы можем использовать его в нашем проекте, добавив в наш pom.xml
:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>src/main/another-src</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
Последнюю версию плагина можно найти в Maven Central .
Если мы сейчас скомпилируем наш проект, сборка завершится успешно.
4. Вывод
В этой статье мы увидели, как настроить подключаемый модуль Maven Builder Helper
для работы с несколькими каталогами src в проекте Maven.
Как всегда, полный исходный код примеров доступен на GitHub .