Zuerst, laut Maven 1.x Website, ist die aktuelle stabile Version für Maven 1.x Version 1.1, nicht 1.4. Zweitens gibt es kein AntRun Plugin Version 1.7 und meines Wissens ist dies ein Maven 2 Plugin. Drittens scheint die Syntax, die Sie verwenden, sehr ähnlich zu Using Attributes, die wiederum über Maven 2 ist.
Also, ich vermisse etwas, aber das ist sehr verwirrend und Sie sollten vielleicht diese Punkte in Ihrer Frage klären.
Jedenfalls, wie Sie Maven 1 explizit erwähnt haben, werde ich versuchen zu antworten. Wenn ich mich gut erinnere, würde ich ein benutzerdefiniertes Ziel schreiben und Jellys
core:if
oder
core:when
verwenden. so etwas tun, bieten 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>
Ich bin wirklich nicht sicher, ob die Syntax, das alles Maven 1 Sachen weg einfach zu weit sind, und ich habe es nicht getestet (ich bin zu faul, Maven zu installieren 1). Aber ich denke du wirst es tun. Die scripting reference kann Ihnen helfen.
ehrlich zu sein, ich hoffe, dass Sie wirklich einen guten Grund zu bevorzugen Maven 1.x über Maven 2.x haben :)
UPDATE: Es scheint, dass die OP Maven 2 unter Verwendung von tatsächlich so ich werde meine Frage entsprechend aktualisieren. Um das gewünschte Verhalten zu implementieren, können Sie Ant-contrib der Verwendung if
Aufgabe wie folgt:
<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>
Und dann rufen mvn compile -Dfoo=bar
(dies ist nur ein Beispiel).
Aber das ist nicht der "maven way", Dinge zu tun. Jetzt, wo ich ein bisschen besser verstehe, was du versuchst zu tun (aber nicht ganz, weil du dein ultimatives Ziel nicht erklärst), denke ich, dass die Verwendung von build profiles angemessener wäre und, nachdem du deine eigene Antwort gelesen hast, denke ich, dass du es bist über Komplikationen (und dass Sie auf dem falschen Weg sind).
Ich verstehe, dass Sie ein Maven Anfänger sind, aber ich würde vorschlagen, es zu verwenden, obwohl anstatt auf Ant zurückzugreifen, oder Sie nicht die Vorteile davon bekommen werden. Auch wenn Sie eine Frage öffnen, anstatt nach einer spezifischen Lösung zu fragen, sollten Sie eher Ihr allgemeines Problem erklären, damit Sie bessere Antworten erhalten. Hier kann ich keine weitere Anleitung geben, da ich nicht weiß, was Sie wirklich erreichen wollen.
Kann yo Sie bestätigen einfach, wie Sie Maven aufrufen und den Parameter übergeben? –
Sehe ich es richtig, dass Ihre 2. Aufgabe keinen Namen hat? –