maven - Maven 存储库中 SNAPSHOT 版本的规则

标签 maven repository release-management

网站

http://books.sonatype.com/mvnref-book/reference/pom-relationships-sect-pom-syntax.html

状态

If a version contains the string “-SNAPSHOT,” then Maven will expand this token to a date and time value converted to UTC (Coordinated Universal Time) when you install or release this component.

从字面上看,不仅 1.2.3-SNAPSHOT 的常见示例表现得像 SNAPSHOT 版本,而且像 1.2.3-RC-SNAPSHOT1.2.3-SNAPSHOT-RC

最佳答案

的确,每个以 SNAPSHOT 结尾的版本都将替换为转换为 UTC 的日期/时间值。


这个转换是在类 SnapshotTransformation 内部完成的Maven 源代码:

String newVersion = snapshot.getTimestamp() + "-" + snapshot.getBuildNumber();
version = StringUtils.replace( baseVersion, Artifact.SNAPSHOT_VERSION, newVersion );

什么是SNAPSHOT版本可以在类ArtifactUtils中看到:如果版本以 "SNAPSHOT" 结尾且忽略大小写,则此代码认为版本是 SNAPSHOT 版本。对于这种情况,the code also如果 SNAPSHOT 不存在,则在它之前添加破折号。

因此,从源代码来看,这本书有一部分是正确的:它应该是“结束于”而不是“包含”。

关于maven - Maven 存储库中 SNAPSHOT 版本的规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34791181/

相关文章:

java - net.sf.josql 是什么?在哪里?

maven - 我如何在编译组gradle文件中具有属性

android - 如何将我的 Eclipse Android 项目上传到 GitHub?

build-process - 不小心把代码放出来了。如何防止再次发生?

version-control - 在 Mercurial : how to revert individual files, "tag"中管理代码并能够维护它

maven - 使用 spring boot 1.3.1 时得到 "Could not find resource ' src/checkstyle/checkstyle-suppressions.xml”

java - 如何让maven从另一个项目复制所有类?

git - 无法使用非 gitolite 管理员用户访问 gitolite 存储库

c++ - 将所有项目依赖项放入项目存储库中是好习惯吗?

build - 在线构建服务器?