簡體   English   中英

在機器上未安裝Maven可執行文件的情況下從Java運行Maven目標

[英]Running maven goals from Java without a Maven executable installed on the machine

我正在嘗試建立一個項目以從SCM檢出代碼並使用Maven進行構建。 有沒有一種方法可以在不提供Maven主頁的情況下(不安裝Maven)從Java實現運行Maven目標。 對於SVN,我正在使用svnkit來實現相同目的。 對於Maven,我嘗試使用以下2個選項。

http://maven.apache.org/ref/3.0-beta-3/maven-embedder/ 誰能舉例說明以編程方式使用org.apache.maven.cli.MavenCli嗎?

對於上述兩個選項,我都需要安裝Maven。 有什么建議么?

不,只需將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> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM