在没有安装Maven可执行文件的情况下从Java运行maven目标

时间:2015-07-07 20:55:16

标签: java eclipse maven svn maven-embedder

我正在尝试构建一个项目来检查SCM中的代码并使用maven构建它。有没有办法我们可以在没有提供maven home的情况下从java实现运行maven目标(没有maven安装)。对于SVN,我使用svnkit来实现相同的目标。对于maven,我尝试使用以下2个选项。

http://maven.apache.org/ref/3.0-beta-3/maven-embedder/ Can anyone give a good example of using org.apache.maven.cli.MavenCli programattically?

对于上述两个选项,我需要安装maven。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

不,只需在项目及以下内容中包含jar,即可编译代码:

MavenCli cli = new MavenCli();
int result = cli.doMain(new String[]{"compile"},
        "workspace/MiscMaven",
        System.out, System.out);
System.out.println("result: " + result);

根据评论,这里是如何将依赖项添加到项目中的。这样做在您的系统上安装maven,只包含项目构建中的JAR:

<dependency>
    <groupId>org.apache.maven</groupId>
    <artifactId>maven-embedder</artifactId>
    <version>3.3.3</version>
</dependency>
<dependency>
    <groupId>org.eclipse.aether</groupId>
    <artifactId>aether-connector-basic</artifactId>
    <version>1.0.2.v20150114</version>
</dependency>
<dependency>
    <groupId>org.eclipse.aether</groupId>
    <artifactId>aether-transport-wagon</artifactId>
    <version>1.0.2.v20150114</version>
</dependency>
<dependency>
    <groupId>org.apache.maven.wagon</groupId>
    <artifactId>wagon-http</artifactId>
    <version>2.9</version>
</dependency>
<dependency>
    <groupId>org.apache.maven.wagon</groupId>
    <artifactId>wagon-provider-api</artifactId>
    <version>2.9</version>
</dependency>
<dependency>
    <groupId>org.apache.maven.wagon</groupId>
    <artifactId>wagon-http-lightweight</artifactId>
    <version>2.9</version>
</dependency>