質問

Mavenのシュア(テスト)プラグインmvn test-compilesrc/test/resourcestarget/test-classesファイルをコピーします。それは.javasrc/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プラグインを用いて達成されますます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top