2014-11-01 2 views
0

Я настроил пример на https://github.com/jjYBdx4IL/example-maven-project-setups/blob/master/antrun-foreach/pom.xml:maven antrun: как перебирать файлы?

 <plugin> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <version>1.7</version> 
      <executions> 
       <execution> 
        <phase>process-test-resources</phase> 
        <configuration> 
         <tasks> 
          <taskdef resource="net/sf/antcontrib/antcontrib.properties" /> 
          <foreach target="unzipLibs" param="fileName"> 
           <path> 
            <fileset dir="${basedir}" casesensitive="yes"> 
             <include name="*.xml"/> 
            </fileset> 
           </path> 
          </foreach> 
         </tasks> 
        </configuration> 
        <goals> 
         <goal>run</goal> 
        </goals> 
       </execution> 
      </executions> 
      <dependencies> 
       <dependency> 
        <groupId>ant-contrib</groupId> 
        <artifactId>ant-contrib</artifactId> 
        <version>1.0b3</version> 
        <!--      <exclusions> 
         <exclusion> 
          <artifactId>ant</artifactId> 
          <groupId>ant</groupId> 
         </exclusion> 
        </exclusions>--> 
       </dependency> 
      </dependencies> 
      <configuration> 
       <target name="unzipLibs"> 
        <echo message="${fileName}" /> 
       </target> 
      </configuration> 
     </plugin>    

Однако, независимо от того, что я стараюсь, она не работает:

Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (default) on project antrun-foreach: Error executing ant tasks: org.apache.tools.ant.util.FileUtils.getFileUtils()Lorg/apache/tools/ant/util/FileUtils; -> [Help 1] 

или, используя муравьиную исключение:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (default) on project antrun-foreach: An Ant BuildException has occured: The following error occurred while executing this line: 
[ERROR] /home/travis/build/jjYBdx4IL/example-maven-project-setups/antrun-foreach/pom.xml:5: Unexpected element "{http://maven.apache.org/POM/4.0.0}project" {antlib:org.apache.tools.ant}project 
[ERROR] around Ant part ...<foreach param="fileName" target="unzipLibs">... @ 5:48 in /home/travis/build/jjYBdx4IL/example-maven-project-setups/antrun-foreach/target/antrun/build-main.xml 

Complete build log.

Перемещение задач муравьев во внешний файл не помогло.

Update: проблема, кажется, что Maven-antrun-плагин не поддерживает определение нескольких целей antrun ...... https://jira.codehaus.org/browse/MANTRUN-86

ответ

1

решен путем перемещения определения целевого в отдельный муравей файл XML сборки.

 <plugin> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <version>1.7</version> 
      <executions> 
       <execution> 
        <phase>process-test-resources</phase> 
        <configuration> 
         <target> 
          <!-- maven does not support defining more than one target... --> 
          <!-- https://jira.codehaus.org/browse/MANTRUN-86 --> 
          <ant antfile="${basedir}/unzip.xml" /> 
         </target> 
        </configuration> 
        <goals> 
         <goal>run</goal> 
        </goals> 
       </execution> 
      </executions> 
      <dependencies> 
       <dependency> 
        <groupId>ant-contrib</groupId> 
        <artifactId>ant-contrib</artifactId> 
        <version>1.0b3</version> 
        <exclusions> 
         <exclusion> 
          <artifactId>ant</artifactId> 
          <groupId>ant</groupId> 
         </exclusion> 
        </exclusions> 
       </dependency> 
      </dependencies> 
      <configuration> 
      </configuration> 
     </plugin>    

unzip.xml:

<?xml version="1.0" encoding="UTF-8" ?> 
<project name="maven-antrun-" default="main" > 
<target name="main"> 
    <taskdef resource="net/sf/antcontrib/antcontrib.properties"/> 
    <foreach param="fileName" target="unzipLibs"> 
    <path> 
     <fileset dir="/home/mark/mysvn/devel/java/misc/maven/antrun-foreach" casesensitive="yes"> 
     <include name="*.xml"/> 
     </fileset> 
    </path> 
    </foreach> 
</target> 
<target name="unzipLibs"> 
    <echo message="${fileName}"/> 
</target> 
</project> 
Смежные вопросы