Come chiamare un maven mojo da java / scala usando maven-embedder
Voglio chiamare l'aiuto:effective-pom mojo direttamente da java/scala.
C'è un esempio minimo su come configurare il maven-runtime e chiamare il mojo?
Presumo che sia necessario un contesto prima di chiamare le cose come previsto nella risposta a questa domanda:
Ad es.
In particolare, l'efficace-pom mojo scrive un brutto prefisso e suffisso sull'xml che non è necessario e voglio lavorare direttamente sull'xml in seguito.
2 answers
Hm. Se controllo il contenuto non ha spazzatura. L'output risulterà in un singolo file. Se ti piace leggere il pom dovresti dare un'occhiata a aether lib, ma il problema è che puoi leggere il pom con esso ma vorresti invece eseguire un mojo che ha bisogno di costruire un ambiente Maven attorno al quale è molto complesso. Dai un'occhiata a qui per avere un'impressione di come potrebbe apparire.
Dopo un po ' di tempo ho trovato questo che sembra più la cosa che ti piace utilizzare.
Usa Maven Embedder / MavenCli
Codice Java
MavenCli cli = new MavenCli();
cli.doMain(new String[]{"help:effective-pom"}, "project_dir", System.out, System.out);
Configurazione del progetto
<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>