Maven: Wenn Sätze in pom.xml in der Eigenschaft tag
Möchte ich auf eine Eigenschaft festlegen, wenn eine Umgebungsvariable gesetzt ist. Ich googeln eine Menge über Sie und alle, die ich fand, ist so etwas ähnliches wie den folgenden code, aber ich erhalte die Fehlermeldung:
[FATAL] Nicht parse-fähige POM Y:\Maven\parent-pom\pom.xml: der TEXT muss unmittelbar gefolgt von END_TAG und nicht START_TAG (position: START_TAG
s een roperties ..."\r\n
classpathref="maven.plugin.classpath" />... @29:55) @ Zeile 29, Spalte
55
Dass der code, den ich versuche, seine inneren eine pom.xml und ich lief den Befehl -
mvn --Fehler bereitstellen
Natürlich, ich werde froh sein, zu bekommen, eine andere Lösung, wenn Sie andere Vorschläge, wie Sie zum festlegen einer Eigenschaft in pom.xml je nach Umgebungsvariablen content.
Dank,
Eli
<distributionManagement>
.....
</distributionManagement>
<properties>
<tasks>
<taskdef resource="net/sf/antcontrib/antcontrib.properties"
classpathref="maven.plugin.classpath" />
<if>
<condition>
<equals arg1="${env.WAS60_HOME}" arg2=""\>
</condition>
<then>
<was60.home>${env.WAS60_HOME}</was60.home>
<javac>${was60.home}/java/bin/javac</javac>
</then>
</if>
<if>
<condition>
<equals arg1="${env.WAS85_HOME}" arg2=""\>
</condition>
<then>
<was85.home>${env.WAS85_HOME}</was60.home>
<javac>${was85.home}/java/bin/javac</javac>
</then>
</if>
</tasks>
</properties>
<profiles>
<profile>
<id>was.base.v60</id>
<dependencies>
<dependency>
....
<systemPath>${was60.home}/java/jre/lib/xml.jar</systemPath>
</dependency>
.....
</dependencies>
</profile>
<profile>
<id>was.base.v85</id>
<dependencies>
<dependency>
....
<systemPath>${was85.home}/java/jre/lib/xml.jar</systemPath>
</dependency>
.....
</dependencies>
</profile>
</profiles>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ein viel besserer Ansatz wäre, die Nutzung Profil-Aktivierungen.
Update:
Meine bevorzugte Art zu verwenden profile ist ein Standard-Satz von Eigenschaften in meiner POM und dann überschreiben diese auf Nachfrage Verwendung von Profilen in meiner settings-Datei.
Dieser Ansatz ist einfach zu tun, explizit mit dem "-s" und "-P" commandline Parameter:
Dieser Ansatz ist leicht zu pflegen in Jenkins mit Config File Provider plugin die es ermöglicht, eine grafische Benutzeroberfläche für die Bearbeitung der verschiedenen Einstellungen, Dateien, die ich für jedes Projekt.
Update 2:
Hier ist ein Beispiel, wie ich meine setup-builds. Die POM enthält einen Abschnitt mit der Eigenschaft default Werte. Und ich setup eine oder mehrere pfiles über-Fahrt diese Werte:
So, in diesem Beispiel die bauen standardmäßig auf Englisch. Zu der build mit den Einstellungen in Spanisch
Hinweis:
Anscheinend gibt es keine Möglichkeit zu tun, eine korrekte IF-then-ELSE-Satz in Maven. Zumindest keine, die ich gefunden habe.
Die nächste Sache, die ich fand, war das mit der "Aktivierung" - tag. wird das Profil zu aktivieren, wenn die Bedingung ist erfüllt.
Gibt es einige Fehler auf mehrere Bedingungen in Maven 2.0.X, nicht sicher, was ist der status heute -
http://jira.codehaus.org/browse/MNG-4565
So, ein code-Beispiel ist, antwortete auf die Frage, die hier -
Maven 2: Ausführen von maven-replacer-plugin mit bedingter Ersatz Wert?
Aber wenn Sie wollen, etwas zu tun, wie << Else >> Du wirst Sie zu schlagen den Kopf auf eine Wand, es zu tun. Es gibt andere Wege, natürlich, und ich nehme an, es ist getan, in der Zweck, so haben Sie zu Folgen, Maven Weg.
Danke an alle, die versucht haben zu helfen
Elyahu
versuchen zu ersetzen \> mit /> in den Zeilen
Nutzung von Aufgaben im Eigenschaften-tag verdrahtet ist , verwenden maven-antrun-plugin statt. Sie können maven properties mit
http://maven.apache.org/plugins/maven-antrun-plugin/