日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【maven插件】versions-maven-plugin : 管理版本号

發布時間:2024/9/19 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【maven插件】versions-maven-plugin : 管理版本号 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

  • Apache Maven 3.5.0
  • org.codehaus.mojo:versions-maven-plugin 2.5
  • http://www.mojohaus.org/versions-maven-plugin/index.html

創建項目

mvn -B archetype:generate \-DarchetypeGroupId=org.apache.maven.archetypes \-DgroupId=com.mycompany.app \-DartifactId=my-app

windows 用這個:

mvn -B archetype:generate ^-DarchetypeGroupId=org.apache.maven.archetypes ^-DgroupId=com.mycompany.app ^-DartifactId=my-app

查看版本號

cmd> mvn help:evaluate -Dexpression=project.version -q -DforceStdout 1.0-SNAPSHOT

添加插件versions-maven-plugin

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.mycompany.app</groupId><artifactId>my-app</artifactId><packaging>jar</packaging><version>1.0-SNAPSHOT</version><name>my-app</name><url>http://maven.apache.org</url><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.codehaus.mojo</groupId><artifactId>versions-maven-plugin</artifactId><version>2.5</version><configuration><generateBackupPoms>false</generateBackupPoms></configuration></plugin></plugins></build> </project>

修改版本號

cmd> mvn versions:set -DnewVersion=1.1 [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building my-app 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- versions-maven-plugin:2.5:set (default-cli) @ my-app --- [INFO] Searching for local aggregator root... [INFO] Local aggregation root: D:\test\my-app [INFO] Processing change of com.mycompany.app:my-app:1.0-SNAPSHOT -> 1.1 [INFO] Processing com.mycompany.app:my-app [INFO] Updating project com.mycompany.app:my-app [INFO] from version 1.0-SNAPSHOT to 1.1 [INFO] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.917 s [INFO] Finished at: 2020-01-15T17:05:54+08:00 [INFO] Final Memory: 11M/155M [INFO] ------------------------------------------------------------------------

再查看版本號

cmd> mvn help:evaluate -Dexpression=project.version -q -DforceStdout 1.1

嗯,版本號已經修改完了。

單模塊項目用這個修改版本號沒啥優勢。當項目為多模塊的項目時,用這個修改版本號較為方便。

多模塊項目修改版本號

比如,有下面這樣結構的繼承關系多模塊項目:

my-apps │ └─pom.xml (1) ├─my-app-child1 │ └─pom.xml (2) └─my-app-child2└─pom.xml (3)

在(1)pom.xml中添加versions-maven-plugin:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.mycompany.app</groupId><artifactId>my-apps</artifactId><packaging>pom</packaging><version>1.0-SNAPSHOT</version><name>my-apps</name><url>http://maven.apache.org</url><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.codehaus.mojo</groupId><artifactId>versions-maven-plugin</artifactId><version>2.5</version><configuration><generateBackupPoms>false</generateBackupPoms></configuration></plugin></plugins></build><modules> <module>my-app-child1</module><module>my-app-child2</module></modules> </project>

(2)pom.xml、(3)pom.xml不需要添加該插件。
使用mvn versions:set -DnewVersion=1.1命令可以將3個項目(1個父項目和2個子項目)的版本號一次性修改為1.1。

cmd> mvn versions:set -DnewVersion=1.1 [INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [INFO] Reactor Build Order: [INFO] [INFO] my-apps [INFO] my-app-child1 [INFO] my-app-child2 [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building my-apps 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- versions-maven-plugin:2.5:set (default-cli) @ my-apps --- [INFO] Searching for local aggregator root... [INFO] Local aggregation root: D:\test\my-apps [INFO] Processing change of com.mycompany.app:my-apps:1.0-SNAPSHOT -> 1.1 [INFO] Processing com.mycompany.app:my-apps [INFO] Updating project com.mycompany.app:my-apps [INFO] from version 1.0-SNAPSHOT to 1.1 [INFO] [INFO] Processing com.mycompany.app:my-app-child1 [INFO] Updating parent com.mycompany.app:my-apps [INFO] from version 1.0-SNAPSHOT to 1.1 [INFO] Updating project com.mycompany.app:my-app-child1 [INFO] from version 1.0-SNAPSHOT to 1.1 [INFO] [INFO] Processing com.mycompany.app:my-app-child2 [INFO] Updating parent com.mycompany.app:my-apps [INFO] from version 1.0-SNAPSHOT to 1.1 [INFO] Updating project com.mycompany.app:my-app-child2 [INFO] from version 1.0-SNAPSHOT to 1.1 [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] [INFO] my-apps ............................................ SUCCESS [ 1.760 s] [INFO] my-app-child1 ...................................... SKIPPED [INFO] my-app-child2 ...................................... SKIPPED [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2.059 s [INFO] Finished at: 2020-01-15T18:27:09+08:00 [INFO] Final Memory: 13M/220M [INFO] ------------------------------------------------------------------------

另,如果沒有繼承關系時(多模塊的聚合項目),需要注意一下2點:

  • 版本 >= 2.5
  • 添加參數 processAllModules=true (默認值是false)

命令如下:

mvn versions:set -DprocessAllModules=true -DnewVersion=1.1

總結

以上是生活随笔為你收集整理的【maven插件】versions-maven-plugin : 管理版本号的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。