Proyecto Maven Run
¿Existe una "fase" o "objetivo" de Maven para simplemente ejecutar el método principal de una clase Java? Tengo un proyecto que me gustaría probar manualmente simplemente haciendo algo como "mvn ejecutar".
6 answers
Vea el complemento exec maven. Puede ejecutar clases Java usando:
mvn exec:java -Dexec.mainClass="com.example.Main" [-Dexec.args="argument1"] ...
La invocación puede ser tan simple como mvn exec:java
si la configuración del plugin está en tu pom.XML. El sitio del plugin en Mojohaus tiene un ejemplo más detallado.
<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>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-20 16:17:17
Las respuestas mencionadas anteriormente son correctas, pero lo estoy simplificando para noobs como yo.Ve al archivo pom de tu proyecto. Agregue una nueva propiedad exec.mainClass
y dé su valor como la clase que contiene su método principal. Para mí fue DriverClass
en mainpkg
. Cámbialo según tu proyecto.
Una vez hecho esto, vaya a la carpeta que contiene el pom.xml
de su proyecto y ejecute esto en el símbolo del sistema mvn exec:java
. Esto debería llamar al método principal.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-25 09:29:20
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-24 14:09:52
No es necesario agregar un nuevo plugin en pom.XML. Simplemente ejecute este comando
mvn org.codehaus.mojo:exec-maven-plugin:1.5.0:java -Dexec.mainClass="com.example.Main" | grep -Ev '(^\[|Download\w+:)'
Vea el complemento maven exec para más uso.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-03 06:47:39
1. Editar POM.xml
Agregue la siguiente propiedad en pom.xml
, asegúrese de usar el nombre de clase completo (es decir, con nombre de paquete) que contiene el método main
.
<properties>
<exec.mainClass>${fully-qualified-class-name}</exec.mainClass>
</properties>
2. Ejecutar comando
Ahora desde el disparador de terminal siguiendo el comando -
mvn clean compile exec:java
NOTA Puede pasar más argumentos a través de -Dexec.args="xxx"
flag
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-06 10:54:24
clean package exec:java -P Class_Containing_Main_Method
command también es una opción si solo tiene un método principal(PSVM) en el proyecto, con la siguiente configuración de Maven.
No olvides mencionar la clase en la sección <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 Ejecuta la configuración junto con la configuración anterior de Maven:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-19 10:06:42