连续交付友好的Maven版本
持續(xù)交付管道需要可預測的軟件和依賴版本。 Maven軟件項目中常見的快照版本與“持續(xù)交付”背后的動機背道而馳。
為了將快照版本更新為發(fā)行版本,開發(fā)人員通常手動或通過諸如maven-release-plugin來編輯pom.xml文件。 但是,Maven還提供了將版本號定義為屬性的可能性,這更適合持續(xù)交付世界。
它可以使用占位符,如${revision}為神器版本,描述在這里 。 因此,我們可以定義一個包含語義版本的版本,該語義版本包括CI服務器的內部版本號作為元數(shù)據(jù):
<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.0http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.sebastian-daschner</groupId><artifactId>hello-world</artifactId><version>${revision}</version>...<properties><!-- will be overridden in CD pipeline --><buildNumber>local</buildNumber><revision>1.0.0+${buildNumber}</revision>...</properties> </project>為了發(fā)布不會在任何環(huán)境上發(fā)布的本地版本,我們照常調用mvn clean package 。 這將導致工件版本1.0.0+local 。
持續(xù)集成服務器將調用Maven構建,類似于: mvn clean package -DbuildNumber=b${buildNumber} -使用從當前管道構建中獲取的構建號。 這將導致工件版本1.0.0+b123 1.0.0+b124等。 設置相同的屬性是為了mvn deploy工件mvn deploy到存儲庫。
此方法可方便地為本地構建指定可預測的版本和后備版本。 請務必注意,語義版本1.0.0僅應由開發(fā)人員更改,因為它反映了API更改的性質和兼容性。
發(fā)現(xiàn)帖子有用嗎? 訂閱我的時事通訊,獲取有關IT和Java的更多免費內容,技巧和竅門:
成功! 現(xiàn)在檢查您的電子郵件以確認您的訂閱。
翻譯自: https://www.javacodegeeks.com/2017/12/continuous-delivery-friendly-maven-versions.html
總結
以上是生活随笔為你收集整理的连续交付友好的Maven版本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt中如何给生成的可执行文件设置图标
- 下一篇: jta atomikos_带有Atomi