java - español - mvn install command
¿Cómo ejecutar Maven desde Java? (3)
Quiero ejecutar el comando maven de Java para el desarrollo de un plugin. Probé maven-embedder pero parece que ahora no es compatible. ¿Alguien conoce alguna otra herramienta que pueda usarse?
Utilice Maven Embedder
Maven Embedder sigue siendo compatible y fácil de configurar, por lo que esta es la mejor opción para usted.
Código Java
MavenCli cli = new MavenCli();
cli.doMain(new String[]{"clean", "install"}, "project_dir", System.out, System.out);
Configuración del proyecto
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-embedder</artifactId>
<version>3.1.1</version>
</dependency>
<dependency>
<groupId>org.eclipse.aether</groupId>
<artifactId>aether-connector-wagon</artifactId>
<version>0.9.0.M2</version>
</dependency>
<dependency>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-http-lightweight</artifactId>
<version>2.5</version>
</dependency>
</dependencies>
Ejemplo completamente funcional: https://github.com/mariuszs/maven-cli-example
Maven embedder ya no es compatible (solo Hudson todavía lo usa). Pero, como en Hudson, hay muchas otras formas de ejecutar Maven. Simplemente podría ejecutar maven como un programa externo:
Runtime.getRuntime().exec("mvn clean install");
O podrías considerar crear un script ant para maven. Esta secuencia de comandos podría llamarse como un programa externo o (si necesita más control) agregar hormiga a su ruta de clase y llamar al Antrunner.
ACTUALIZAR
Maven Embedder ahora es compatible de nuevo, así que esa es tu mejor opción.
Una API de invocación simple: maven-invocador.
Documentación del proyecto: http://maven.apache.org/shared/maven-invoker/
Uso: http://maven.apache.org/shared/maven-invoker/usage.html
InvocationRequest request = new DefaultInvocationRequest();
request.setPomFile( new File( "/path/to/pom.xml" ) );
request.setGoals( Arrays.asList( "clean", "install" ) );
Invoker invoker = new DefaultInvoker();
invoker.execute( request );