Meine pom.xml
führt eine Ant-Task aus, um eine Datei mithilfe von FTP bereitzustellen. Diese Bereitstellung muss jedoch nur ausgeführt werden, wenn das Argument -Dftp=true
im Maven-Befehl angegeben ist (d. H. mvn clean install -Dftp=true
). So habe ich den folgenden Code geschrieben:Führen Sie eine Ant-Task in Maven nur aus, wenn eine Eigenschaft festgelegt ist
<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>
diesen pom.xml
verwendet, wird die Ant-Task nicht ausgeführt, wenn ich die -Dftp
Eigenschaft in meinem Maven Befehl nicht definieren. Wenn ich jedoch irgendeine Art von Wert für diese Eigenschaft gebe, zum Beispiel -Dftp=false
, wird die Ant-Task ausgeführt, was nicht korrekt ist.
Wie konfigurieren Sie die AntRun-Task so, dass sie nur ausgeführt wird, wenn eine bestimmte Eigenschaft einen bestimmten Wert hat?
ps: Ich weiß, ich kann eine profile
verwenden, die nur aktiv ist, wenn ftp
gleich true
ist. Diese Lösung funktioniert, aber aus irgendeinem Grund möchte ich mein Antrun Plugin build
blockieren lassen.
<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)
Was für eine schreckliche (und ausführlich) Syntax für diese 'if' Aufgabe. Aber es macht die Arbeit, das ist wichtiger, o) Danke! – romaintaz