Ich möchte, dass ein Maven-Ziel die Ausführung einer Java Klasse auslöst. Ich versuche, über ein Makefile
mit den folgenden Zeilen zu migrieren:
neotest:
mvn exec:Java -Dexec.mainClass="org.dhappy.test.NeoTraverse"
Und ich möchte mvn neotest
um was zu produzieren make neotest
derzeit.
Weder die Seiten exec plugin documentation noch Maven Ant tasks enthielten ein einfaches Beispiel.
Derzeit bin ich bei:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1</version>
<executions><execution>
<goals><goal>Java</goal></goals>
</execution></executions>
<configuration>
<mainClass>org.dhappy.test.NeoTraverse</mainClass>
</configuration>
</plugin>
Ich weiß jedoch nicht, wie ich das Plugin über die Befehlszeile auslösen soll.
Mit der globalen Konfiguration , die Sie für das exec-maven-plugin definiert haben:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.4.0</version>
<configuration>
<mainClass>org.dhappy.test.NeoTraverse</mainClass>
</configuration>
</plugin>
durch Aufrufen von mvn exec:Java
in der Befehlszeile wird das Plugin aufgerufen, das zum Ausführen der Klasse org.dhappy.test.NeoTraverse
konfiguriert ist.
Um das Plugin über die Befehlszeile auszulösen, führen Sie einfach Folgendes aus:
mvn exec:Java
Wenn Sie nun das Ziel exec:Java
Als Teil Ihres Standardbuilds ausführen möchten, müssen Sie das Ziel an eine bestimmte Phase binden des Standardlebenszyklus . Dazu deklarieren Sie im Element phase
das execution
, an das Sie das Ziel binden möchten:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<id>my-execution</id>
<phase>package</phase>
<goals>
<goal>Java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>org.dhappy.test.NeoTraverse</mainClass>
</configuration>
</plugin>
In diesem Beispiel würde Ihre Klasse während der package
-Phase ausgeführt. Dies ist nur ein Beispiel, passen Sie es an Ihre Bedürfnisse an. Funktioniert auch mit Plugin Version 1.1.
Um mehrere Programme ausführen zu können, benötigte ich außerdem einen Abschnitt profiles
:
<profiles>
<profile>
<id>traverse</id>
<activation>
<property>
<name>traverse</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<configuration>
<executable>Java</executable>
<arguments>
<argument>-classpath</argument>
<classpath/>
<argument>org.dhappy.test.NeoTraverse</argument>
</arguments>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
Dies ist dann ausführbar als:
mvn exec:exec -Dtraverse