web-dev-qa-db-ja.com

build-helper-maven-pluginadd-test-resourceエラー

私はこのプロジェクト構造を持っています:

/src
    /main
        /Java
        /resources
    /test 
        /Java
        /resources
    /it
        /Java
        /resources

単体テストの場合はtest、統合テストの場合はitbuild-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に一元化することをお勧めします。誰かが正しい設定で例を投稿できますか?

前もって感謝します。

14
troig

maven-build-helper-plugin:add-test-resources のjavadocによると。 resourcesorg.Apache.maven.model.Resourceの配列です。したがって、次のように構成する必要があります。

<configuration>
    <resources>  
         <resource>                                     
               <directory>/src/it/resources</directory>
         </resource>
    </resources>      
</configuration>

プラグインパラメータの設定方法 をご覧ください。

24
René Link