9

У меня есть эта структура проекта:встроенный помощник-Maven-плагин ошибка добавить тест-ресурс

/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 конфигурации, как Belows:

<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 (они coppied правильно/целевых/тест-классов), но не копирует тест-ресурсы. Я пробовал разные комбинации <configuration>: вместо этого используйте <resource> вместо <directory>, используйте конкретный файл вместо каталога ... но не работает.

StackTrace с ошибкой:

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> 

Но я предпочел бы централизовать все модификации classpath под build-helper-maven-plugin. Может ли кто-нибудь опубликовать пример с правильной конфигурацией?

Заранее спасибо.

ответ

18

Согласно javadoc maven-build-helper-plugin:add-test-resources. resources представляет собой массив из org.apache.maven.model.Resource. Таким образом, вы должны настроить его таким образом:

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

Взгляните на how to configure plugin parameters.

+0

Doh! Вы правы, это была глупая ошибка. Большое спасибо! – troig