build-helper-maven-plugin ошибка добавления тестового ресурса

У меня есть эта структура проекта:

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

test для модульных тестов и it для интеграционных тестов. Я использую build-helper-maven-plugin для добавления дополнительных тестовых источников. /resources в путь к классам для последующего использования 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. Я пробовал разные комбинации <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>

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

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


person troig    schedule 13.10.2014    source источник


Ответы (1)


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

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

Взгляните на как настроить параметры подключаемого модуля.

person René Link    schedule 13.10.2014
comment
Дох! Ты прав, это была глупая ошибка. Большое спасибо! - person troig; 13.10.2014
comment
извините, я думаю, что я что-то упускаю, но код, показанный в ответе, кажется таким же, как и в вопросе. Я упоминаю об этом только потому, что получаю ту же ошибку, что и в вопросе, но конфигурация показана в ответе. - person robbie70; 11.04.2019
comment
@ robbie70 конфигурация имеет небольшую разницу. В моем вопросе путь configuration/resources/directory, а в ответе configuration/resources/resource/directory - person troig; 15.04.2019
comment
ах да, извиняюсь за ошибку... спасибо за разъяснение - person robbie70; 15.04.2019