2009-07-06 34 views
166

¿Hay una "fase" u "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 run".Maven Run Project

Respuesta

270

Ver el exec maven plugin. Puede ejecutar las clases Java usando:

mvn exec:java -Dexec.mainClass="com.example.Main" [-Dexec.args="argument1"] ... 

La invocación puede ser un simple como mvn exec:java si la configuración del plug-in está en su pom.xml. El sitio del complemento en Mojohaus tiene un more detailed example.

<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> 
+0

ejecutivo: Java no hizo nada por mí, pero el ejecutivo: el ejecutivo hizo el truco. –

+5

¡así es como debería ser una respuesta! referencia + ejemplo simple + ejemplo complejo. el ejemplo simple me hizo el truco (no se necesitan más configuraciones) – codewing

+1

¿Hay una versión más reciente de este complemento (más reciente que la 1.2.1?) –

0

clean package exec:java -P Class_Containing_Main_Method comando es también una opción si usted tiene sólo un método principal (PSVM) en el proyecto, con el siguiente programa de instalación de Maven.

No se olvide de mencionar la clase en la sección de pom.xml<properties></properties>:

<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 configuración Ejecutar junto con el anterior programa de instalación de Maven:

enter image description here

+0

Eso no se ve derecho para mí ¿No es -P para 'perfil'? Si lo especifica en la línea de comando, ¿por qué necesita ponerlo en las propiedades del complemento? – Rup

+0

@Rup Sí, '-P' es para perfil. Compartí esto, ya que también es una opción para ejecutar el proyecto Maven. – Abhijeet

8

El mencionado respuestas 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ámbielo según su proyecto. enter image description here

Una vez hecho esto navegar a la carpeta que contiene de pom.xml su proyecto y ejecutar esto en el símbolo del sistema mvn exec:java. Esto debería llamar al método principal.

4

No es necesario agregar un nuevo complemento en pom.xml. Sólo tiene que ejecutar este comando

mvn org.codehaus.mojo:exec-maven-plugin:1.5.0:java -Dexec.mainClass="com.example.Main" | grep -Ev '(^\[|Download\w+:)' 

Ver el maven exec plugin para más uso.

+0

Pasa argumentos adicionales a través de '-Dexec.args =" ... arg ... "' – sstn

Cuestiones relacionadas