39 votes

Comment exécuter Maven à partir de Java ?

Je veux exécuter la commande Maven à partir de Java pour le développement d'un plugin. J'ai essayé maven-embedder mais il semble qu'il ne soit plus pris en charge. Quelqu'un est-il au courant d'un autre outil qui peut être utilisé ?

56voto

user3254289 Points 611

Une API d'invocation simple : maven-invoker.

Documentation du projet : http://maven.apache.org/shared/maven-invoker/

Utilisation : 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 );

17voto

MariuszS Points 7842

Utiliser Maven Embedder

Maven embedder est toujours pris en charge et facile à configurer, c'est donc une meilleure option pour vous.

Code Java

MavenCli cli = new MavenCli();
cli.doMain(new String[]{"clean", "install"}, "project_dir", System.out, System.out);

Configuration du projet

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

Exemple entièrement fonctionnel : https://github.com/mariuszs/maven-cli-example

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X