build-helper-maven-plugin add-test-resource 错误

Posted

技术标签:

【中文标题】build-helper-maven-plugin add-test-resource 错误【英文标题】:build-helper-maven-plugin add-test-resource error 【发布时间】:2014-12-07 21:25:24 【问题描述】:

我有这个项目结构:

/src
    /main
        /java
        /resources
    /test 
        /java
        /resources
    /it
        /java
        /resources

test 用于单元测试,it 用于集成测试。我正在使用build-helper-maven-plugin 将其他测试源/资源添加到类路径以供以后使用maven-surfire-plugin 运行 unit tests 和 maven-failsafe-plugin 代表 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。我尝试了&lt;configuration&gt; 的不同组合:使用&lt;resource&gt; 而不是&lt;directory&gt;,使用特定文件而不是目录...但都不起作用。

出现错误的堆栈跟踪:

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)

PROVISIONALLY,我已经修复了它,将集成测试资源添加到 maven &lt;build&gt; 配置:

<build>
...
    <testResources>                               
       <testResource>                             
          <directory>src/it/resources</directory> 
       </testResource>                            
    </testResources>    
</build>

但我希望将所有类路径修改集中在build-helper-maven-plugin 下。 任何人都可以发布具有正确配置的示例吗?

提前致谢。

【问题讨论】:

【参考方案1】:

根据maven-build-helper-plugin:add-test-resources 的javadoc。 resourcesorg.apache.maven.model.Resource 的数组。因此你必须这样配置它:

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

看看how to configure plugin parameters。

【讨论】:

噢!你是对的,这是一个愚蠢的错误。非常感谢! 对不起,我想我一定遗漏了一些东西,但答案中显示的代码似乎与问题中的相同。我只提到它是因为我遇到了与问题中报告的相同的错误,但答案中显示了配置。 @robbie70 配置略有不同。在我的问题中,路径是configuration/resources/directory,而答案是configuration/resources/resource/directory 啊,是的,很抱歉我的错误...感谢您的澄清

以上是关于build-helper-maven-plugin add-test-resource 错误的主要内容,如果未能解决你的问题,请参考以下文章

build-helper-maven-plugin 简单讲解

build-helper-maven-plugin 简单讲解

build-helper-maven-plugin 简单讲解

build-helper-maven-plugin 简单讲解

build-helper-maven-plugin:部署没有版本指示器的文件

build-helper-maven-plugin add-test-resource 错误