複数のソースディレクトリを持つMavenプロジェクト
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]にあります。