Saltar al contenido

ejecutar la clase principal del proyecto Maven

Solución:

Pruebe el complemento maven-exec-plugin. Desde allí:

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

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

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

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

Si está haciendo esto con regularidad, también puede agregar los parámetros al 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>

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

Clónelo y enlace simbólicamente el script en algún lugar de su ruta. yo suelo ~/bin/mvnexec, Como yo tengo ~/bin en mi camino. creo mvnexec es un buen nombre para el script, pero depende de usted cambiar el enlace simbólico …

Lánzalo desde la raíz de tu proyecto, donde puedes ver los directorios src y target.

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

$ 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 (escribiendo un número), se le solicitarán argumentos (puede evitarlo con mvnexec -P)

De forma predeterminada, compila el proyecto en cada ejecución. pero puedes evitar eso usando mvnexec -B

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

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

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *