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".

 181
Author: Robert Munteanu, 2009-07-07

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>
 292
Author: Robert Munteanu,
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. introduzca la descripción de la imagen aquí

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.

 10
Author: shshnk,
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

Pruebe el complemento Exec Maven

 6
Author: dfa,
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.

 4
Author: arulraj.net,
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

 2
Author: Saikat,
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:

introduzca la descripción de la imagen aquí

 1
Author: Abhijeet,
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