- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我只是用 ${revision}
建立一个 Maven 多模块项目如https://maven.apache.org/maven-ci-friendly.html 中所述的版本
楼盘${revision}
在父 POM 中设置并在所有模块中用作版本号。
这适用于 SNAPSHOT 构建,但是当我运行 Maven 发布插件时,版本被替换为 1.0.0
然后 1.0.1-SNAPSHOT
.所以 cifriendly 版本在一个版本之后就消失了。
有没有办法以不破坏 cifriendly 版本的方式配置 Maven 发布插件?
最佳答案
CI 友好版本方案旨在替换 Maven Release Plugin ,而不是补充。在当今的开发世界中,大多数团队都依赖 CI 服务器进行集成测试、执行自动化测试以及通过持续交付或持续部署发布。 SNAPSHOT
的概念当一切都可能是 SNAPSHOT
时,确实是有限的.
Notably, the Release Plugin executes 4 to 5 times more processes than a properly implemented CI Friendly configuration.想象一下,使用发布插件的 50 分钟构建变成使用 CI 策略的 15 分钟构建。 Now that's modernization!
基本思想是版本中使用的值将从 DVCS 中收集。 ( Git
、 SVN
等)和 CIS ( Jenkins
, Travis CI
, GitLab
等)在构建时用于修改或设置 POM/发布版本。这些值是内部版本号、缩短的 Git 哈希值或其他任何值。
实现 CI 友好的 Maven 构建的过程:
<version>
标签。这些是 ${revision}
, ${changelist}
和 ${sha1}
. ${revision}
之类的东西。 . 注意:我现在推荐${revision}
. <properties>
, 将值设置为可接受的默认值 - 很明显它们来自非构建机器的虚假值,例如 0
对于内部版本号。 <properties>
, 组装 <revision>
的值,例如版本,来自其他属性和硬编码值。例如,<revision>1.0.0b${changelist}-${sha1}</revision>
. -D
标志来设置实际值。例如,${BUILD_NUMBER}
将值注入(inject)到每个 Jenkins 构建中 -- -Dchangelist=${BUILD_NUMBER}
. master
执行发布通过清除所有或部分这些值。例如,功能分支可以计算和添加 Git 哈希。语义版本已在上面设置——开发人员现在拥有并控制它。他们必须知道自己的代码才能进行更改,并且他们可以自由地增加语义版本。这是很多宝贵的灵 active 。
关于java - Maven 发布插件和 cifriendly 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59641739/
我只是用 ${revision} 建立一个 Maven 多模块项目如https://maven.apache.org/maven-ci-friendly.html 中所述的版本 楼盘${revisio
我是一名优秀的程序员,十分优秀!