Question
Y at-il une « phase » Maven ou « but » d'exécuter simplement la méthode principale d'une classe Java? J'ai un projet que je voudrais tester manuellement en faisant simplement quelque chose comme « run mvn ».
La solution
Voir la plug-in exec Maven . Vous pouvez exécuter les classes Java en utilisant:
mvn exec:java -Dexec.mainClass="com.example.Main" [-Dexec.args="argument1"] ...
L'invocation peut être aussi simple que mvn exec:java
si la configuration du plug-in est dans votre pom.xml. Le site de plugin sur Mojohaus a plus détaillée exemple .
<project>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<mainClass>com.example.Main</mainClass>
<arguments>
<argument>argument1</argument>
</arguments>
</configuration>
</plugin>
</plugins>
</build>
</project>
Autres conseils
Les réponses ci-dessus mentionnées sont correctes, mais je simplifie pour noobs comme me.Go au fichier pom de votre projet. Ajouter une nouvelle propriété exec.mainClass
et donner sa valeur en tant que classe qui contient votre principale méthode. Pour moi, il a été DriverClass
dans mainpkg
. Changer selon votre projet.
Après avoir fait cela Accédez au dossier qui contient le pom.xml
de votre projet et exécuter sur la commande mvn exec:java
rapide. Cela devrait appeler la méthode principale.
1. Modifier pom.xml
Ajoutez la propriété suivante dans pom.xml
. Assurez-vous d'utiliser le nom complet de la classe (par exemple avec le nom du package) qui contient la méthode main
:
<properties>
<exec.mainClass>${fully-qualified-class-name}</exec.mainClass>
</properties>
2. Commande Exécuter
à partir du terminal, déclencher la commande suivante:
mvn clean compile exec:java
NOTE Vous pouvez passer d'autres arguments par drapeau -Dexec.args="xxx"
.
plug-in Exec Maven essayer
Pas besoin d'ajouter un nouveau plugin dans pom.xml. Il suffit d'exécuter cette commande
mvn org.codehaus.mojo:exec-maven-plugin:1.5.0:java -Dexec.mainClass="com.example.Main" | grep -Ev '(^\[|Download\w+:)'
Voir la plugin Maven exec plus l'utilisation.
commande clean package exec:java -P Class_Containing_Main_Method
est également une option si vous avez une seule méthode principale (PSVM) dans le projet, avec la configuration suivante Maven.
Ne pas oublier de mentionner la classe dans la section <properties></properties>
de pom.xml
:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.main.class>com.test.service.MainTester</java.main.class>
</properties>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<mainClass>${java.main.class}</mainClass>
</configuration>
</plugin>
STS de configuration Exécuter avec au-dessus de configuration Maven: