2011-01-21 12 views
7

Estoy tratando de usar las tareas "if" dentro de maven build.maven3 - maven-antrun-plugin - "No se pudo crear la tarea o escribir si"

Encontré muchos artículos que sugieren el uso de la dependencia "ant-nodeps". Finalmente, todos estos trucos no funcionaron en maven3 + ant 1.8.1 + maven-antrun-plugin 1.6.

"Una hormiga BuildException ha ocurrido: Problema: No se pudo crear el tipo de tareas o si"

Puede algo ayudar?

Aquí es código real (y no, no es necesario, pero por si acaso):

<profiles> 
    <profile> 
     <id>smtpConfigurationProfile</id> 
     <activation> 
      <activeByDefault>true</activeByDefault> 
     </activation> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-antrun-plugin</artifactId> 
        <version>1.6</version> 
        <executions> 
         <execution> 
          <phase>validate</phase> 
          <goals> 
           <goal>run</goal> 
          </goals> 
          <configuration> 
           <tasks> 
            <if> 
             <isset property="${smtpFile}"/> 
             <then> 
              <delete file="${project.build.outputDirectory}/smtp.properties"/> 
              <copy file="${smtpFile}" 
                tofile="${project.build.outputDirectory}/smtp.properties"/> 
             </then> 
             <elseif> 
              <isset property="${smtpProfile}"/> 
              <then> 
               <delete file="${project.build.outputDirectory}/smtp.properties"/> 
               <copy file="src/main/resources/${smtpProfile}.smtp.properties" 
                 tofile="${project.build.outputDirectory}/smtp.properties"/> 
              </then> 
              <else> 
               <delete file="${project.build.outputDirectory}/smtp.properties"/> 
               <copy file="src/main/resources/production.smtp.properties" 
                 tofile="${project.build.outputDirectory}/smtp.properties"/> 
              </else> 
             </elseif> 
            </if> 
           </tasks> 
          </configuration> 
         </execution> 
        </executions> 
        <dependencies> 
         <dependency> 
          <groupId>org.apache.ant</groupId> 
          <artifactId>ant-nodeps</artifactId> 
          <version>1.8.1</version> 
         </dependency> 
        </dependencies> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
</profiles> 

Respuesta

17

1) Añadir esta línea antes tareas de hormigas en la sección de destino:

<taskdef resource="net/sf/antcontrib/antlib.xml" 
classpathref="maven.plugin.classpath" /> 

2) Añadir exactamente las siguientes dependencias de plugin:

     <dependencies> 
         <dependency> 
          <groupId>ant-contrib</groupId> 
          <artifactId>ant-contrib</artifactId> 
          <version>1.0b3</version> 
          <exclusions> 
           <exclusion> 
            <groupId>ant</groupId> 
            <artifactId>ant</artifactId> 
           </exclusion> 
          </exclusions> 
         </dependency> 
         <dependency> 
          <groupId>org.apache.ant</groupId> 
          <artifactId>ant-nodeps</artifactId> 
          <version>1.8.1</version> 
         </dependency> 
        </dependencies> 
+0

[taskdef] No se pudieron cargar las definiciones del recurso net/sf/antcontrib/antlib.xml. No pudo ser encontrado. –

1

Ver mi pregunta here donde tuve el mismo problema.

Lo resolví moviendo mi dependencia ant-contrib del complemento al proyecto.

+0

Gracias, qwerky! pero encontré un problema diferente con taskdefs. –

Cuestiones relacionadas