Innanzitutto, secondo il sito Web di Maven 1.x, l'attuale versione stabile per maven 1.x è la versione 1.1, non 1.4. In secondo luogo, non esiste Plugin AntRun versione 1.7 e, a mia conoscenza, questo è un plugin Maven 2. In terzo luogo, la sintassi si utilizza sembra molto simile a Using Attributes che, ancora una volta, è di circa Maven 2.
Quindi, io possa mancare qualcosa, ma, questo è molto confusa e si dovrebbe forse chiarire questi punti nella sua interrogazione.
In ogni caso, come hai esplicitamente menzionato Maven 1, proverò a rispondere. Se ricordo bene, vorrei scrivere un obiettivo personalizzato e utilizzare Jelly's
core:if
o
core:when
. Per fare ciò, fornire qualcosa di simile in
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>
Io non sono davvero sicuro della sintassi, tutta questa roba Maven 1 è troppo lontano, e non ho la prova che (io sono troppo pigro per installare Maven 1). Ma immagino che lo farai. Il scripting reference potrebbe aiutarti.
Per essere onesti, io davvero spero che tu abbia un buon motivo per preferire Maven 1.x su Maven 2.x :)
UPDATE: Sembra che l'OP è in realtà utilizzando Maven 2 così ho aggiornerò la mia domanda di conseguenza. Per implementare il comportamento desiderato, è possibile utilizzare il compito di Ant-contrib if
come illustrato di seguito:
<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>
e quindi chiamare mvn compile -Dfoo=bar
(questo è solo un esempio).
Ma tutto questo non è il "modo esperto" di fare le cose. Ora che capisco un po 'meglio quello che stai cercando di fare (ma non del tutto perché non hai spiegato il tuo obiettivo finale), penso che usare build profiles sarebbe più appropriato e, dopo aver letto la tua risposta, penso che tu sia a complicare le cose (e che sei sulla strada sbagliata).
Capisco che tu sia un principiante di Maven ma ti suggerirei di provare ad usarlo anche se invece di ricadere su Ant o non ne otterrai i benefici. Inoltre, quando apri una domanda, invece di chiedere una soluzione specifica, dovresti piuttosto spiegare il tuo problema generale, otterrai risposte migliori. Qui, non posso fornire ulteriori indicazioni in quanto non so cosa stai cercando di ottenere.
Can yo Basta confermare come chiami Maven e passare il parametro? –
Lo vedo correttamente, che il secondo compito non ha un nome? –