如何以编程方式调用 Maven 任务
我正在另一个构建工具(Leiningen for Clojure,但这无关紧要)的上下文中使用Maven,我想知道我如何以编程方式调用像relation:build-classpath这样的插件(即通过Maven-API,而不是通过-命令)。mvn
我正在另一个构建工具(Leiningen for Clojure,但这无关紧要)的上下文中使用Maven,我想知道我如何以编程方式调用像relation:build-classpath这样的插件(即通过Maven-API,而不是通过-命令)。mvn
使用 Maven Invoker API。它快速而简单。
InvocationRequest request = new DefaultInvocationRequest();
request.setPomFile( new File( "/path/to/pom.xml" ) );
request.setGoals( Collections.singletonList( "install" ) );
Invoker invoker = new DefaultInvoker();
invoker.setMavenHome(new File("/usr"));
try
{
invoker.execute( request );
}
catch (MavenInvocationException e)
{
e.printStackTrace();
}
pom.xml:
<dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-invoker</artifactId>
<version>2.1.1</version>
</dependency>