0

通常の (デフォルト プロファイル) ビルドで除外する必要がある初期データ クラスがあります。たとえば、実行プロファイルを指定すると、このクラスを含める必要があります。さらに、このクラスはテストに必要です。したがって、常に含める必要があります。

最初の部分を達成するために除外を使用しましたが、テストからの依存関係がtestCompileの目標を破っています。

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <executions>
        <execution>
            <id>default-compile</id>
            <goals>
                <goal>compile</goal>
            </goals>
            <configuration>
                <excludes>
                    <exclude>**/InitialDataBuilder.java</exclude>
                </excludes>
            </configuration>
        </execution>
        <execution>
            <id>default-testCompile</id>
            <goals>
                <goal>testCompile</goal>
            </goals>
            <configuration>
                <testIncludes>
                    <include>**/*.java</include>
                </testIncludes>
            </configuration>
        </execution>
    </executions>
</plugin>

私の設定の何が問題になっていますか?
テスト用に除外されたソース ファイルを含める方法はありませんか?

4

1 に答える 1

0

Maven のディレクトリ構造により、ソース/本番コードとテスト コードを簡単に分離できます。

プロジェクトをレイアウトする方法の詳細は、https ://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html で説明されています。

基本的に、本番コードを次の場所に配置します。

src/main/java

テストコードは次のとおりです。

src/test/java

テスト コード ツリーには、実際の単体テスト自体とサポート クラスを含める必要があります。したがって、あなたが説明したコードはそこに属しています。最終的にはテスト jar にのみ格納され、運用 jar には格納されません。

また、このようにすれば、コンパイラのプラグイン設定をいじる必要はありません。デフォルトはあなたが期待することをします。

ああ、もう1つ言及する必要があるのは、別のプロファイルに必要な場合は、独自のPOMファイルを使用して独自のmavenモジュールにする必要があるということです。次に、このクラスはそれを<scope>test</scope>依存関係として参照し、他のクラスは本番依存関係として参照できます。

于 2015-06-27T02:18:20.177 に答える