Mavenの追加のソースディレクトリ
1. 概要
このチュートリアルでは、MavenベースのJavaプロジェクトに複数のソースディレクトリを追加する方法について説明します。
2. 追加のソースディレクトリ
src /main内に/newsrcソースディレクトリを追加する必要があると仮定します。
まず、 src / main / newsrc/フォルダー内に単純なJavaクラスファイルDataConnection。javaを作成しましょう。
public class DataConnection {
public static String temp() {
return "secondary source directory";
}
}
その後、 src / main / java ディレクトリに、他のフォルダに作成されたDataConnectionクラスを使用する別のクラスファイルを作成しましょう。
public class MainApp {
public static void main(String args[]){
System.out.println(DataConnection.temp());
}
}
Mavenプロジェクトをコンパイルする前に、プロジェクトの構造を簡単に見てみましょう。
ここで、コンパイルしようとすると、コンパイルエラーが発生します:
[ERROR] BuilderHelper/src/main/java/com/baeldung/maven/plugin/MainApp.java:[3,29] package com.baeldung.database does not exist
[ERROR] BuilderHelper/src/main/java/com/baeldung/database/MainApp.java:[9,28] cannot find symbol
[ERROR] symbol: variable DataConnection
[ERROR] location: class com.baeldung.MainApp
エラーメッセージの根本的な原因を理解できます。一般的なプロジェクトディレクトリ構成の外部でDataConnectionクラスを定義しました。
Mavenはデフォルトで1つのソースフォルダーのみをサポートします。 複数のソースディレクトリを設定するには、build-helper-maven-pluginというMavenプラグインを使用する必要があります。
3. build-helper-maven-pluginを使用してソースディレクトリを追加します
上記のエラーを解決するために、build-helper-maven-pluginを使用してソースディレクトリを追加します。 このプラグインは、最小限の構成で目標を達成するのに役立ちます。
src / main フォルダの隣に兄弟ディレクトリがあるので、2番目のソースディレクトリを追加します。
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>src/main/newsrc/</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
ここでは、generate-sourcesフェーズでadd-sourceゴールを実行しています。 また、configuration.sources.sourceタグでソースディレクトリを指定しました。
ご存知のとおり、Mavenのデフォルトのライフサイクルには、コンパイル前にいくつかのフェーズが含まれています。 generate-resources 、 process-resources 、およびcompile。 したがって、ここでは、Mavenがソースコードをコンパイルする前に、新しいソースディレクトリを追加しています。
次に、プロジェクトをコンパイルすると、ビルドが成功します。 この後、ターゲットフォルダを確認すると、プラグインが両方のソースディレクトリからクラスを生成していることがわかります:
このプラグインの最新バージョンは、 MavenCentralにあります。 この例ではソースディレクトリを1つだけ追加しましたが、プラグインを使用すると、必要な数だけ追加できます。
4. 結論
このチュートリアルでは、build-helper-maven-pluginを使用して複数のソースディレクトリを追加する方法を学びました。
いつものように、例の完全なソースコードは、GitHubでから入手できます。