Existe-t-il une "phase" ou un "objectif" Maven pour 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 "exécuter MVN".
Voir le plugin exec maven . Vous pouvez exécuter les classes Java à l'aide de:
mvn exec:Java -Dexec.mainClass="com.example.Main" [-Dexec.args="argument1"] ...
L'appel 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 un exemple plus détaillé .
<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>
Les réponses mentionnées ci-dessus sont correctes, mais je les simplifie pour des personnes comme moi. Allez au fichier pom de votre projet. Ajoutez une nouvelle propriété exec.mainClass
et donnez sa valeur en tant que classe contenant votre méthode principale. Pour moi, c’était DriverClass
dans mainpkg
. Changez-le selon votre projet.
Cela fait, accédez au dossier qui contient le pom.xml
de votre projet et exécutez-le à l'aide de la commande Invite mvn exec:Java
. Cela devrait appeler la méthode principale.
Ajoutez la propriété suivante dans pom.xml
. Assurez-vous d’utiliser le nom de classe complet (c'est-à-dire avec le nom du paquet) qui contient la méthode main
:
<properties>
<exec.mainClass>${fully-qualified-class-name}</exec.mainClass>
</properties>
Maintenant, depuis le terminal, lancez la commande suivante:
mvn clean compile exec:Java
NOTE Vous pouvez transmettre d'autres arguments via le drapeau -Dexec.args="xxx"
.
Pas besoin d'ajouter un nouveau plugin dans pom.xml. Il suffit de lancer cette commande
mvn org.codehaus.mojo:exec-maven-plugin:1.5.0:Java -Dexec.mainClass="com.example.Main" | grep -Ev '(^\[|Download\w+:)'
Voir le plugin maven exec pour plus d'utilisation.
Essayez le plugin Exec Maven
La commande clean package exec:Java -P Class_Containing_Main_Method
est également une option si vous ne possédez qu'une seule méthode principale (PSVM) dans le projet, avec la configuration Maven suivante.
N'oubliez pas 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 Exécuter la configuration en plus de la configuration Maven ci-dessus: