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

私たちのプロジェクト構造は、このようになりました。

リンク:/uploads/maven-100×63.png%20100w[]

  • このプロジェクトをMavenでコンパイルしようとすると、

    Foo

    クラスがプロジェクトに含まれていないため、コンパイルエラーが発生します。

----[ERROR].../MultipleSrcFolders.java:[6,9]cannot find symbol[ERROR]  symbol:   variable Foo[ERROR]  location: class com.baeldung.maven.plugins.MultipleSrcFolders
----


3

Builder Helper

プラグインを使用する

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>

プラグインの最新バージョンはhttps://search.maven.org/classic/#search%7Cgav%7C1%7Ca%3A%22build-helper-maven-plugin%22[Maven Central]にあります。

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


4結論

この記事では、Mavenプロジェクト内で

Builder Helper

Mavenプラグインを設定して複数のsrcディレクトリを処理する方法を説明しました。

いつものように、例の完全なソースコードはhttps://github.com/eugenp/tutorials/tree/master/maven[over on GitHub]にあります。