tutorial proyecto instalar espaƱol ejecutar desde dependencias crear consola como comandos java maven maven-2

java - proyecto - maven project eclipse



ejecutar la clase principal del proyecto Maven (2)

Esta pregunta ya tiene una respuesta aquí:

He creado una aplicación Java de consola simple construida con Maven. ¿Existe alguna forma de que la clase principal (que no requiere ningún argumento) se pueda ejecutar desde la línea de comandos utilizando un comando de Maven como:

mvn run-app com.example.MainClass


Aunque el ejecutivo de Maven hace el truco aquí, lo encontré bastante pobre para una prueba real. Mientras esperaba a Shell de Maven , y con la esperanza de que esto pudiera ayudar a otros, finalmente salí a este representante mvnexec

Clónalo y vincula el script en algún lugar de tu ruta. Uso ~/bin/mvnexec , ya que tengo ~/bin en mi camino. Creo que mvnexec es un buen nombre para el script, pero depende de usted cambiar el enlace simbólico ...

Inícielo desde la raíz de su proyecto, donde podrá ver las direcciones src y target.

El script busca clases con el método principal, ofreciendo una selección para elegir una (Ejemplo con JMeld proyecto JMeld JMeld )

$ mvnexec 1) org.jmeld.ui.JMeldComponent 2) org.jmeld.ui.text.FileDocument 3) org.jmeld.JMeld 4) org.jmeld.util.UIDefaultsPrint 5) org.jmeld.util.PrintProperties 6) org.jmeld.util.file.DirectoryDiff 7) org.jmeld.util.file.VersionControlDiff 8) org.jmeld.vc.svn.InfoCmd 9) org.jmeld.vc.svn.DiffCmd 10) org.jmeld.vc.svn.BlameCmd 11) org.jmeld.vc.svn.LogCmd 12) org.jmeld.vc.svn.CatCmd 13) org.jmeld.vc.svn.StatusCmd 14) org.jmeld.vc.git.StatusCmd 15) org.jmeld.vc.hg.StatusCmd 16) org.jmeld.vc.bzr.StatusCmd 17) org.jmeld.Main 18) org.apache.commons.jrcs.tools.JDiff #?

Si se selecciona uno (número de escritura), se le solicitan argumentos (se puede evitar con mvnexec -P )

Por defecto compila proyecto cada ejecución. pero puedes evitar eso usando mvnexec -B

Permite buscar solo en las clases de prueba -M o --no-main , o solo en las clases principales -T o --no-test . También tiene un filtro por opción de nombre -f <whatever>

Espero que esto te pueda ahorrar algo de tiempo, para mí lo hace.


Prueba el maven-exec-plugin . Desde allí:

mvn exec:java -Dexec.mainClass="com.example.Main"

Esto ejecutará su clase en la JVM. Puede usar -Dexec.args="arg0 arg1" para pasar argumentos.

Si está en Windows, aplique cotizaciones para exec.mainClass y exec.args :

mvn exec:java -D"exec.mainClass"="com.example.Main"

Si está haciendo esto regularmente, también puede agregar los parámetros en el pom.xml:

<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.2.1</version> <executions> <execution> <goals> <goal>java</goal> </goals> </execution> </executions> <configuration> <mainClass>com.example.Main</mainClass> <arguments> <argument>foo</argument> <argument>bar</argument> </arguments> </configuration> </plugin>