Перейти к основному содержимому

Проект Maven с несколькими исходными каталогами

· 2 мин. чтения

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();
}
}

Структура нашего проекта теперь выглядит так:

./bba3da78c8ff373cae5cded5b9b5b5c6.png

Если мы попытаемся скомпилировать этот проект с помощью 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 .