J'aimerais qu'un objectif Maven déclenche l'exécution d'une classe Java. J'essaie de migrer sur un Makefile
avec les lignes suivantes:
neotest:
mvn exec:Java -Dexec.mainClass="org.dhappy.test.NeoTraverse"
Et je voudrais mvn neotest
pour produire quoi make neotest
fait actuellement.
Ni les pages documentation du plugin exec , ni les pages tâches Maven Ant ne contenaient un exemple simple.
Actuellement, je suis à:
<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>
Je ne sais pas comment déclencher le plugin à partir de la ligne de commande, cependant.
Avec la configuration globale que vous avez définie pour le plugin exec-maven:
<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>
invoquer mvn exec:Java
sur la ligne de commande appelle le plug-in configuré pour exécuter la classe org.dhappy.test.NeoTraverse
.
Donc, pour déclencher le plugin à partir de la ligne de commande, lancez simplement:
mvn exec:Java
Maintenant, si vous voulez exécuter le exec:Java
objectif dans le cadre de votre construction standard, vous devez le lier à une phase particulière du cycle de vie par défaut =. Pour ce faire, déclarez le phase
auquel vous voulez lier l'objectif dans l'élément execution
:
<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>
Avec cet exemple, votre classe serait exécutée au cours de la phase package
. Ceci est juste un exemple, adaptez-le à vos besoins. Fonctionne également avec la version 1.1 du plugin.
Afin d'exécuter plusieurs programmes, j'avais également besoin d'une section 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>
Ceci est alors exécutable en tant que:
mvn exec:exec -Dtraverse