中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • Springboot如何整合maven插口調用maven?release?plugin實現一鍵打包功能

Springboot如何整合maven插口調用maven?release?plugin實現一鍵打包功能

發布時間:2022-03-15 12:54:02 來源:億速云 閱讀:180 作者:小新 欄目:開發技術

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

maven release plugin配置

整合maven-invoker使程序去執行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 {
    //直接執行mvn release:prepare -X 為交互式執行,無法在程序進行時輸入版本參數。
    //而執行mvn -B release:prepare -X 則可以通過程序直接執行。但是若要自定義版本信息則需要配置pom release plugin的參數,或采用如下命令
    //實際執行的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環境變量地址
        String m2Path = System.getenv("MAVEN_HOME");
        System.out.println("m2Path:"+m2Path);
        invoker.setMavenHome(new File(m2Path));
        try {
            //該版本tag信息
            String tag = "VersiongControlDemo-0.4.0";
            //此次發布的版本號
            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。結果成功。(每次運行前都要注意版本參數,切勿沖突。)

Springboot如何整合maven插口調用maven?release?plugin實現一鍵打包功能

同理可配置release:rollback等相關回滾命令。

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

向AI問一下細節

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

AI

桦川县| 千阳县| 东阳市| 长垣县| 乡城县| 纳雍县| 南溪县| 余江县| 通化县| 南和县| 武定县| 岳阳市| 舒兰市| 彭州市| 宁安市| 雅安市| 大石桥市| 新绛县| 卫辉市| 万山特区| 德惠市| 保靖县| 峨眉山市| 阜康市| 常州市| 仁怀市| 旬邑县| 青龙| 托克逊县| 高邑县| 曲周县| 武安市| 高阳县| 克拉玛依市| 高碑店市| 辽阳县| 四子王旗| 新营市| 汉中市| 重庆市| 四川省|