Mi pom.xml
ejecuta una tarea Ant para implementar un archivo mediante FTP. Sin embargo, esta implementación solo debe realizarse si el argumento -Dftp=true
se proporciona en el comando Maven (es decir, mvn clean install -Dftp=true
). Por lo tanto, escribí el siguiente código:Ejecutar una tarea Ant en Maven solo si se establece una propiedad
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks if="ftp">
<echo message="Deploying files through FTP..."/>
...
</tasks>
</configuration>
</execution>
</executions>
El uso de este pom.xml
, la tarea Ant no se ejecuta si no se define la propiedad -Dftp
en mi comando Maven. Sin embargo, si doy cualquier tipo de valor para esta propiedad, por ejemplo -Dftp=false
, se ejecuta la tarea Ant, que no es correcta.
¿Cómo se configura la tarea AntRun para que se ejecute solo si una propiedad determinada tiene un valor determinado?
ps: Sé que puedo usar un profile
que solo está activo cuando ftp
es igual a true
. Esta solución funciona, pero por alguna razón, quiero tener mi complemento Antrun build
bloque.
<profiles>
<profile>
<id>deployment</id>
<activation>
<activeByDefault>false</activeByDefault>
<property>
<name>ftp</name>
<value>true</value>
</property>
</activation>
<build>
<plugins>
<plugin>
... (define the Ant task here)
Qué sintaxis horrible (y prolija) para esta tarea 'if'. Pero hace el trabajo, eso es más importante; o) ¡Gracias! – romaintaz