En primer lugar, según el sitio web de Maven 1.x, la versión estable actual para maven 1.x es la versión 1.1, no 1.4. En segundo lugar, no existe AntRun Plugin versión 1.7 y, que yo sepa, este es un plugin de Maven 2. En tercer lugar, la sintaxis que está utilizando parece muy similar a Using Attributes que, una vez más, es sobre Maven 2.
Por lo tanto, me puede faltar algo pero, esto es muy confuso y tal vez debería aclarar estos puntos en su pregunta.
De todos modos, como mencionó explícitamente Maven 1, intentaré responder. Si recuerdo bien, escribiría un objetivo personalizado y usaría el
core:if
de Jelly o el
core:when
. Para ello, ofrecer algo como esto en
maven.xml
:
<project xmlns:j="jelly:core" xmlns:ant="jelly:ant">
<goal name="my-goal">
<j:if test="${environment == 'PROD'}">
<ant:xxx .../>
</j:if>
</goal>
</project>
Realmente no estoy seguro de la sintaxis, todo esto Maven 1 cosas es demasiado lejos, y no he probado (yo soy demasiado perezoso para instalar Maven 1). Pero supongo que lo harás. El scripting reference puede ayudarlo.
Para ser honesto, realmente esperamos que tenga una buena razón para preferir Maven 1.x 2.x sobre Maven :)
ACTUALIZACIÓN: Parece que el PO en realidad está utilizando Maven 2, de modo que Actualizaré mi pregunta en consecuencia. Para implementar el comportamiento deseado, se puede usar la tarea de Ant-contrib if
como se muestra a continuación:
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<taskdef resource="net/sf/antcontrib/antcontrib.properties"
classpathref="maven.plugin.classpath" />
<if>
<equals arg1="${foo}" arg2="bar" />
<then>
<echo message="The value of property foo is bar" />
</then>
<else>
<echo message="The value of property foo is not bar" />
</else>
</if>
</tasks>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>ant-contrib</groupId>
<artifactId>ant-contrib</artifactId>
<version>20020829</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
y luego llamar mvn compile -Dfoo=bar
(esto es sólo un ejemplo).
Pero, todo esto no es la "manera maven" de hacer las cosas. Ahora que entiendo un poco mejor lo que está tratando de hacer (pero no del todo porque no explicó su objetivo final), creo que usar build profiles sería más apropiado y, habiendo leído su propia respuesta, creo que está sobre cosas complicadas (y que estás en el camino equivocado).
Entiendo que eres un principiante de Maven, pero te sugiero que intentes usarlo en lugar de recurrir a Ant o no obtendrás los beneficios. Además, al abrir una pregunta, en lugar de solicitar una solución específica, debería explicar su problema general, obtendrá mejores respuestas. Aquí, no puedo proporcionar más orientación ya que no sé lo que realmente estás tratando de lograr.
Can yo ¿Simplemente confirmas cómo llamas a maven y pasas el parámetro? –
¿Lo veo correctamente, que su segunda tarea no tiene nombre? –