私はこのプロジェクト構造を持っています:
/src
/main
/Java
/resources
/test
/Java
/resources
/it
/Java
/resources
単体テストの場合はtest
、統合テストの場合はit
。 build-helper-maven-plugin を使用して、後で使用するためにクラスパスにテストソース/リソースを追加します maven-surfire-plugin 実行unit tests
および maven-failsafe-plugin for integration tests
。
以下のようなプラグイン設定:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.9.1</version>
<executions>
<execution>
<id>add-integration-test-sources</id>
<phase>generate-test-sources</phase>
<goals>
<goal>add-test-source</goal>
</goals>
<configuration>
<sources>
<source>src/it/Java</source>
</sources>
</configuration>
</execution>
<execution>
<id>add-integration-test-resources</id>
<phase>generate-test-resources</phase>
<goals>
<goal>add-test-resource</goal>
</goals>
<configuration>
<resources>
<directory>/src/it/resources</directory>
</resources>
</configuration>
</execution>
</executions>
</plugin>
これはtest-sources
(/ target/test-classesに正しくコピーされます)では正常に機能しますが、test-resourcesはコピーされません。 <configuration>
のさまざまな組み合わせを試しました。<resource>
の代わりに<directory>
を使用し、ディレクトリの代わりに特定のファイルを使用します...しかしどちらも機能しません。
エラーのあるスタックトレース:
Caused by: org.Apache.maven.plugin.PluginConfigurationException: Unable to parse configuration of mojo org.codehaus.mojo:build-helper-maven-plugin:1.9.1:add-test-resource for parameter directory: Cannot configure instance of org.Apache.maven.model.Resource from src/it/resources
at org.Apache.maven.plugin.internal.DefaultMavenPluginManager.populatePluginFields(DefaultMavenPluginManager.Java:597)
at org.Apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.Java:529)
at org.Apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.Java:92)
at org.Apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.Java:209)
[〜#〜]暫定的に[〜#〜]、統合テストリソースをMaven <build>
構成に追加することを修正しました:
<build>
...
<testResources>
<testResource>
<directory>src/it/resources</directory>
</testResource>
</testResources>
</build>
ただし、すべてのクラスパスの変更をbuild-helper-maven-plugin
に一元化することをお勧めします。誰かが正しい設定で例を投稿できますか?
前もって感謝します。
maven-build-helper-plugin:add-test-resources のjavadocによると。 resources
はorg.Apache.maven.model.Resource
の配列です。したがって、次のように構成する必要があります。
<configuration>
<resources>
<resource>
<directory>/src/it/resources</directory>
</resource>
</resources>
</configuration>
プラグインパラメータの設定方法 をご覧ください。