1. 序章

Javaプロジェクトで複数のソースディレクトリを使用する必要がある場合があります。 自動的に生成され、別のディレクトリに配置されるクラスがある場合の一般的なケースの例。

この短い記事では、追加のソースディレクトリで動作するようにMavenを設定する方法を示します。

2. 別のソースディレクトリの追加

Mavenプロジェクトがすでに作成されていると仮定して、 src /mainフォルダーにanother-srcという新しいソースディレクトリを追加しましょう。

その後、このフォルダ内に簡単なJavaクラスを作成しましょう。

public class Foo {
    public static String foo() {
        return "foo";
    }
}

次に、作成したFooクラスを使用する別のクラスをsrc/ main /javaディレクトリに作成しましょう。

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.baeldung.maven.plugins.MultipleSrcFolders

3. BuilderHelperプラグインの使用

Mavenでは、 Builder Helper プラグインを使用して、ソースディレクトリをさらに追加できます。 このプラグインを使用すると、さまざまな方法でビルドライフサイクルをカスタマイズできます。

その目標の1つは、 add-sources です。これは、generate-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>

プラグインの最新バージョンは、 MavenCentralにあります。

プロジェクトをコンパイルすると、ビルドは成功します。

4. 結論

この記事では、Mavenプロジェクトで複数のsrcディレクトリを操作するように Builder HelperMavenプラグインを設定する方法を説明しました。

いつものように、例の完全なソースコードは、GitHubから入手できます。