maven 版本号插件_测试Maven版本插件自动递增版本号
maven 版本號插件
抽象
Maven版本插件是一個非常強大的工具,我在很大程度上依賴于它來協調軟件版本。 通常,軟件發行版本號遵循簡單的1.0.0.0-SNAPSHOT格式。 但是最近我需要在版本號中添加一個限定符,例如1.0-beta-SNAPSHOT或1.0.0-fix-bug-description-SNAPSHOT 。 在我第一次嘗試添加限定符之后,Maven發行插件以意外的方式自動增加了版本號。 因此,我需要研究Maven發行版插件版本的自動遞增行為,但要在生產Git存儲庫中做很多廢話(我沒有開發庫)。 本博客的目的是展示如何配置Maven發行插件,使其可以在本地運行而不更改生產源代碼控制。
免責聲明
這篇文章僅供參考。 在使用所提供的任何信息之前,請認真思考。 從中學到東西,但最終自己做出決定,風險自負。
要求
我使用以下主要技術完成了本文的所有工作。 您可能可以使用不同的技術或版本來做相同的事情,但不能保證。
- NetBeans 11.2
- Maven 3.3.9(與NetBeans捆綁在一起)
- Maven發布插件2.5.1
- Java 11(zulu11.35.15-ca-jdk11.0.5-win_x64)
- 適用于Windows 2.25.0的Git
注意 Maven版本插件假定可執行文件(如git)在PATH 。 如果遇到找不到git命令的錯誤,則需要確保Git的安裝獨立于IDE且位于PATH 。
下載
訪問我的GitHub頁面https://github.com/mjremijan以查看我所有的開源項目。 這篇文章的代碼位于: https : //github.com/mjremijan/thoth-maven-release-plugin
安裝Git
您需要做的第一件事是安裝Git。 即使Git已集成到您的IDE中(與NetBeans一樣),Maven發行版插件仍假定其所需的可執行文件在PATH上可用。 為您的環境下載,安裝和配置PATH。
POM <scm>標簽
您需要做的第二件事是配置POM <scm>標簽。 當Maven版本插件運行時,它使用<scm>標記值來標識源控制系統的位置。
相關配置如下,請參閱GitHub上的完整pom.xml 。
因為我想在本地運行并且不連接到生產源代碼控制系統,所以我的示例使用了Git。 Git不需要服務器就可以很好地運行。 讓我們看一下<scm>標簽。
清單1 – <scm>標簽
<scm> <url>scm:git:file: //D:/Projects/thoth-maven-release-plugin/.git</url> <url>scm:git:file: //D:/Projects/thoth-maven-release-plugin/.git</url> <connection> scm:git:file: //D:/Projects/thoth-maven-release-plugin/.git</connection> scm:git:file: //D:/Projects/thoth-maven-release-plugin/.git</connection> <developerConnection> scm:git:file: //D:/Projects/thoth-maven-release-plugin/.git scm:git:file: //D:/Projects/thoth-maven-release-plugin/.git </developerConnection> </scm>清單1中的代碼顯示了<scm>標記的配置。 顯然,在我的計算機的文件系統上對該項目的.git文件夾的引用應該很.git 。 您必須為您的計算機更改此值。 請記住,目標是在本地工作! 此配置將您帶到那里。
配置<scm>標記后,下一步是配置maven-release-plugin。 接下來讓我們看看。
POM Maven-發布插件
第三件事是配置maven-release-plugin工件。 此配置用于Maven登臺存儲庫。
相關配置如下,請參閱GitHub上的完整pom.xml 。 讓我們看一下這個配置。
清單2 – maven-release-plugin標簽
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <version> 2.5 . 1 </version> <dependencies> <dependency> <groupId>org.apache.maven.shared</groupId> <artifactId>maven-invoker</artifactId> <version> 2.2 </version> </dependency> </dependencies> <configuration> <stagingRepository> localforme:: default ::file: //C:/Users/Michael/.m2/repository ::file: //C:/Users/Michael/.m2/repository </stagingRepository> </configuration> </plugin> .... </build>第6行將maven-release-plugin設置為2.5.1版。 這是我研究時(2019年第二季度)的最新情況。 使用低于2.5.2的版本還有一些其他問題,我將在接下來的內容中介紹。
第8行將maven-invoker依賴項設置為2.2版。 Maven 3.3將腳本名稱(在Windows上)從mvn.bat更改為mvn.cmd 。 2.5.2版以下的maven-release-plugin假設使用mvn.bat 。 將maven-invoker更改為2.2版會將假設更改為mvn.cmd以便可以使用Maven 3.3+(Lucas,2015年)。 如果您使用大于或等于2.5.2版的maven-release-plugin,則不需要此maven-invoker配置。
第15行設置Maven登臺存儲庫的位置。 通常,您可以在settings.xml中進行settings.xml 。 如果未設置,則會出現構建錯誤。 我在這里展示了如何配置它。 如果您在settings.xml擁有它,則可以刪除此配置。
現在已經配置了pom.xml ,接下來讓我們看看如何運行它。
MVN命令
現在已經設置好配置,是時候運行Maven項目并測試一切正常了。 清單3顯示了mvn的屬性和開關。
清單3 – mvn命令
mvn -Dmaven.test.skip= true -Dmaven.javadoc.failOnError= false --batch-mode release:clean release:prepare release:stage此命令行沒有太多內容。 第4行是最重要的。 它指定要執行的Maven-release-plugin目標。
現在您可以進行測試了。 運行命令,看看會發生什么。
摘要
如果您使用的是NetBeans之類的IDE,當在文件系統上檢測到更改時自動監視并重新加載文件,則可以打開pom.xml ,然后運行mvn命令,最后觀察<version>標記隨Maven的變化而自動更改。運行。 這樣,您可以從<version>標記的任意值開始,并研究如何自動更改它。 請享用!
參考資料
盧卡斯 (2015年7月1日)。 無法執行目標Maven準備的 [Web日志注釋]。 堆棧溢出。 從https://stackoverflow.com/questions/29755620/failed-to-execute-goal-maven-releaseprepare檢索。
翻譯自: https://www.javacodegeeks.com/2020/02/testing-maven-release-plugin-auto-increment-version-number.html
maven 版本號插件
總結
以上是生活随笔為你收集整理的maven 版本号插件_测试Maven版本插件自动递增版本号的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 倪妮怎么读 倪妮的读音和介绍
- 下一篇: 英睿达发布新款 X9 移动 SSD:QL