溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Springboot如何整合maven插口調(diào)用maven?release?plugin實現(xiàn)一鍵打包功能

發(fā)布時間:2022-03-15 12:54:02 來源:億速云 閱讀:178 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下Springboot如何整合maven插口調(diào)用maven release plugin實現(xiàn)一鍵打包功能,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

maven release plugin配置

整合maven-invoker使程序去執(zhí)行mvn命令

1.導包

<dependency>
  <groupId>org.apache.maven.shared</groupId>
  <artifactId>maven-invoker</artifactId>
  <version>3.1.0</version>
</dependency>

注意maven-invoker版本。版本過低可能導致不兼容。

2.測試程序

public class MavenTest {
    //直接執(zhí)行mvn release:prepare -X 為交互式執(zhí)行,無法在程序進行時輸入版本參數(shù)。
    //而執(zhí)行mvn -B release:prepare -X 則可以通過程序直接執(zhí)行。但是若要自定義版本信息則需要配置pom release plugin的參數(shù),或采用如下命令
    //實際執(zhí)行的mvn命令.
    //mvn -B release:prepare -X -Dtag=VersionControlDemo-"0.4.0" -DreleaseVersion="0.4.0" -DdevelopmentVersion="0.4.1-SNAPSHOT"
    //mvn release:perform -X
    public static void main(String[] args) throws MavenInvocationException {
        InvocationRequest request = new DefaultInvocationRequest();
        //獲取pom文件地址
        String relativelyPath=System.getProperty("user.dir");
        String pomPath = relativelyPath+"/pom.xml";
        System.out.println(pomPath);
        request.setPomFile(new File(pomPath));
        Invoker invoker = new DefaultInvoker();
        //獲取maven環(huán)境變量地址
        String m2Path = System.getenv("MAVEN_HOME");
        System.out.println("m2Path:"+m2Path);
        invoker.setMavenHome(new File(m2Path));
        try {
            //該版本tag信息
            String tag = "VersiongControlDemo-0.4.0";
            //此次發(fā)布的版本號
            String version = "0.4.0";
            //下一次版本的快照版本號
            String developmentVersion="0.4.1-SNAPSHOT";

            List<String> goals = new ArrayList<>();
            goals.add("-B");
            goals.add("release:prepare");
            goals.add("-X");
            goals.add("-Dtag=" + tag);
            goals.add("-DreleaseVersion=" + version);
            goals.add("-DdevelopmentVersion=" + developmentVersion);
            request.setGoals(goals);
            System.out.println("開始: " + request.getGoals());
            invoker.execute(request);
            request.setGoals(Collections.singletonList("release:perform -X"));
            System.out.println("開始:  " + request.getGoals());
            invoker.execute(request);
        } catch (MavenInvocationException e) {
            e.printStackTrace();
            return;
        }
    }
}

運行測試demo。結(jié)果成功。(每次運行前都要注意版本參數(shù),切勿沖突。)

Springboot如何整合maven插口調(diào)用maven?release?plugin實現(xiàn)一鍵打包功能

同理可配置release:rollback等相關(guān)回滾命令。

看完了這篇文章,相信你對“Springboot如何整合maven插口調(diào)用maven release plugin實現(xiàn)一鍵打包功能”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI