我正在使用gGradle的“ maven-publish”插件,该插件在实际版本后添加了后缀,我想避免这样做。因为在CI的下一步中,它尝试下载.jar,而curl命令没有下载任何内容。
我可以连接到我的链接并通过./gradlew publish Optional<VERSION=0.0.1>
上传,但是插件(我认为)添加了时间戳,看起来像这样:
a/b/c/ARTIFACT-NAME/0.0.1-SNAPSHOT/ARTIFACT-NAME-0.0.1-20190114.134142-8.jar
那是我的发布任务:
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
}
}
repositories {
maven {
if (project.version.endsWith('-SNAPSHOT')) {
url deployNexusSnapshotUrl
} else {
url deployNexusReleaseUrl
}
credentials {
username = deployNexusUsername
password = deployNexusPassword
}
}
}
}
答案 0 :(得分:2)
那是因为您正在发布SNAPSHOT
版本。此时间戳是一项功能,可以区分不同的快照版本,例如在有限的时间内使用它们,并在以后清除它们。当您发布不使用后缀-SNAPSHOT
的适当工件版本时,就不会发生这种情况。
出于CI构建可重复性的考虑,在CI上构建软件时,切勿使用SNAPSHOT
依赖项。可以覆盖SNAPSHOT
个版本,尤其是在版本中禁用时间戳时。
如果您的项目中没有代码更改,CI构建为绿色,但是第二天有人覆盖存储库中的SNAPSHOT
依赖项,并且构建现在为红色,该怎么办?如果第二天您必须发布一个修复程序来解决紧急生产问题,而您却不得不关注新的SNAPSHOT
依赖项所带来的问题,该怎么办?
您正在尝试解决错误的问题。 SNAPSHOT
仅用于本地开发。