Domanda
Esiste una "fase" o un "obiettivo" di Maven per eseguire semplicemente il metodo principale di una classe Java?Ho un progetto che vorrei testare manualmente semplicemente facendo qualcosa come "mvn run".
Soluzione
Vedere la exec Maven plug . È possibile eseguire le classi Java utilizzando:
mvn exec:java -Dexec.mainClass="com.example.Main" [-Dexec.args="argument1"] ...
L'invocazione può essere semplice come mvn exec:java
se la configurazione del plugin è nel vostro pom.xml. Il sito plugin su Mojohaus ha un più dettagliate esempio .
<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>
Altri suggerimenti
Le risposte di cui sopra sono corretti ma sto semplificando per niubbi come me.Go in file pom del progetto. Aggiungere un nuovo exec.mainClass
proprietà e dare il suo valore come la classe che contiene il metodo principale. Per me è stato DriverClass
in mainpkg
. Cambiarlo secondo il vostro progetto.
Dopo aver fatto questo Passare alla cartella che contiene pom.xml
del progetto ed eseguire questo sul prompt dei comandi mvn exec:java
. Questo dovrebbe chiamare il metodo principale.
1.Modifica POM.xml
Aggiungi la seguente proprietà in pom.xml
.Assicurati di utilizzare il nome della classe completo (ad es.con il nome del pacchetto) che contiene il file main
metodo:
<properties>
<exec.mainClass>${fully-qualified-class-name}</exec.mainClass>
</properties>
2.Esegui comando
Ora dal terminale, esegui il seguente comando:
mvn clean compile exec:java
NOTA Puoi passare ulteriori argomenti tramite -Dexec.args="xxx"
bandiera.
Dare il Exec Maven plug una prova
Non c'è bisogno di aggiungere nuovi plugin nella pom.xml. Basta eseguire questo comando
mvn org.codehaus.mojo:exec-maven-plugin:1.5.0:java -Dexec.mainClass="com.example.Main" | grep -Ev '(^\[|Download\w+:)'
Vedere la Maven plug-exec più l'utilizzo.
comando clean package exec:java -P Class_Containing_Main_Method
è anche un opzione se si dispone di un solo metodo Main (PSVM) nel progetto, con la seguente configurazione Maven.
Non dimenticare di menzionare la classe nella sezione <properties></properties>
di 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 configurazione di esecuzione con sopra Setup Maven: