Mavenの(シュア):SRC /テスト/ Javaからコピーテストリソース
-
26-09-2019 - |
質問
Mavenのシュア(テスト)プラグインをmvn test-compile
にsrc/test/resources
でtarget/test-classes
ファイルをコピーします。それは.java
でsrc/test/java
、および.class
にコピーコンパイルtarget/test-classes
ファイルをコンパイルします。
しかし、それはsrc/test/java
からリソースをコピーしません、それは.java
並列階層に比べて、彼らはのための資源であるsrc/test/resources
クラスと同じディレクトリにテストリソースを置くことができるように、より便利です。
それはMavenのはsrc/test/java
からリソースをコピーするために取得することはできますか?
解決
リソースのコピーは、すべてのmaven-リソースプラグインによって行われ、そしてあなたがドキュメントを読めば、そのあなたはSRC /テスト/ Javaからのリソースのコピーを追加する方法について説明します。
http://maven.apache.org/plugins/maven-resources-を参照してください。プラグイン/ testResources-mojo.html のデフォルトのライフサイクルに含まれているテスト・リソースの目標のために。
そして http://maven.apache.org/pom.html を見て、<testResources>
を探します。
他のヒント
bmargulies答えを与えたが、私はいくつかの詳細を記入してみましょう。
<testresources>
このように、プロジェクトのPOMの<build>
ノードに追加することができます:
<testResources>
<testResource>
<directory>${project.basedir}/src/test/java</directory>
</testResource>
</testResources>
src/test/java
でそのコピーのすべて - 私たちは望んでいない.java
のソースコードを含みます。
また、それ(bmarguliesのみを示唆した通り)をオーバーライドし、(その継承が変更されない限り)標準の親POMから他のすべてのPOMの継承という点で、デフォルト<testResources>
の設定を置き換えます。標準の親コピーsrc/test/resources
は、そのためにオーバーライドすることによって、我々はそれが我々が望んでいないこれは、いつものようにコピーされ得ることはありません。 (具体的には、これを行うための私の全体の理由はunitils.properties
ファイルがコピーされたい、unitilsを使用することです - 。そしてsrc/test/resources
中の(私にとっては、とにかく)その
私たちは再度追加だからsrc/test/resources
ます:
<testResources>
<testResource>
<directory>${project.basedir}/src/test/java</directory>
</testResource>
<testResource>
<directory>${project.basedir}/src/test/resources</directory>
</testResource>
</testResources>
が順にコピーが記載されているので、両/src/test/java
に存在するファイル(およびサブディレクトリ)と/src/test/resources
に(およびサブディレクトリ)のために、src/test/resources
バージョンが1であることをそのtest-classes
で終わるまで
.java
ファイルをコピーします:
<testResources>
<testResource>
<directory>${project.basedir}/src/test/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</testResource>
<testResource>
<directory>${project.basedir}/src/test/resources</directory>
</testResource>
</testResources>
私はsrc/test/resources
フォルダ(ソースファイルのsrc/test/java
のアナログ)に私のテスト構成を置くとき、それは私のために働いた唯一の方法。このフォルダからファイルは、テストの実行中にクラスパス上にあるtarget/test-classes
フォルダにコピーされます。私はなぜ知らないが、次の設定は私のために動作しませんでした。
<testResources>
<testResource>
<directory>${project.basedir}/src/test/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</testResource>
<testResource>
<directory>${project.basedir}/src/test/resources</directory>
</testResource>
</testResources>
コピーにMavenを取得することは可能です SRC /テスト/ Javaからの資源?
はい、これは簡単に antrunプラグインを用いて達成されますます。