複数のソースディレクトリを持つMavenプロジェクト

複数のソースディレクトリを持つMavenプロジェクト

1. 前書き

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

この短い記事では、set up Maven to work with additional source directoriesを実行する方法を示します。

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

プロジェクトの構造は次のようになります。

image

Fooクラスがプロジェクトに含まれていないため、If we try to compile this project with Maven we get a compilation error

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

3. Builder Helperプラグインの使用

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

その目標の1つはadd-sourcesです。これは、generate-sourcesフェーズ中にプロジェクトにさらにsrcディレクトリを追加することを目的としています。

pom.xmlに追加することで、プロジェクトで使用できます。


    org.codehaus.mojo
    build-helper-maven-plugin
    3.0.0
    
        
            generate-sources
            
                add-source
            
            
                
                    src/main/another-src
                
            
        
    

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

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

4. 結論

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

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