プラグイン開発でJavaからMavenコマンドを実行したい。試してみmaven-embedder
ましたが、現在サポートされていないようです。誰かが使用できる他のツールを知っていますか?
質問する
34400 次
3 に答える
56
シンプルな呼び出し API : maven-invoker.
プロジェクトのドキュメント: http://maven.apache.org/shared/maven-invoker/
使用法: 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 );
于 2014-02-03T18:00:35.810 に答える
17
Maven Embedderを使用する
Maven エンベダーは引き続きサポートされており、構成が簡単なため、これはより適切なオプションです。
Java コード
MavenCli cli = new MavenCli();
cli.doMain(new String[]{"clean", "install"}, "project_dir", System.out, System.out);
プロジェクト構成
<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>
于 2013-11-11T10:43:14.853 に答える
5
実際、Maven エンベダーはサポートされなくなりました (hudson のみが現在も使用しています)。ただし、hudson の場合と同様に、maven を実行する方法は他にもいくつかあります。maven を外部プログラムとして実行するだけです。
Runtime.getRuntime().exec("mvn clean install");
または、maven 用の ant スクリプトの作成を検討することもできます。 次に、このスクリプトを外部プログラムとして呼び出すか、(さらに制御が必要な場合) ant をクラスパスに追加して Antrunner を呼び出すことができます。
アップデート
Maven エンベダーが再びサポートされるようになったため、これが最適なオプションです。
于 2011-02-28T12:20:34.390 に答える