java - proyecto - maven project eclipse
ejecutar la clase principal del proyecto Maven (2)
Esta pregunta ya tiene una respuesta aquí:
- Maven Run Project 6 respuestas
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
yexec.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>