gradle maven-publish插件添加时间戳,如何避免放入后缀
gradle maven-publish plugin adds timestamp, how to avoid putting it into suffix
我正在使用 gGradle 的 'maven-publish' 插件,它在实际版本之后添加了一个后缀,我想避免这种情况。因为在我的 CI 的下一步中,它试图下载 .jar,而 curl 命令没有下载任何内容。
我可以连接到我的 nexus 并通过 ./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
}
}
}
}
那是因为您发布的是 SNAPSHOT
版本。此时间戳是一项允许区分不同快照构建的功能,例如在有限的时间内使用它们并在以后清除它们。当您发布不使用 -SNAPSHOT
后缀的适当工件版本时,不会发生这种情况。
为了 CI 构建的可重复性,当您在 CI 上构建软件时,您不应该使用 SNAPSHOT
依赖项。 SNAPSHOT
版本可以被覆盖,特别是如果您禁用版本中的时间戳。
如果您的项目中没有代码更改,CI 构建是绿色的,但第二天有人覆盖了存储库中的 SNAPSHOT
依赖项并且构建现在是红色的怎么办?如果第二天您必须发布修补程序来解决紧急生产问题,但您必须专注于新的 SNAPSHOT
依赖项引入的问题,该怎么办?
您正在尝试解决错误的问题。 SNAPSHOT
仅用于本地开发。
我正在使用 gGradle 的 'maven-publish' 插件,它在实际版本之后添加了一个后缀,我想避免这种情况。因为在我的 CI 的下一步中,它试图下载 .jar,而 curl 命令没有下载任何内容。
我可以连接到我的 nexus 并通过 ./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
}
}
}
}
那是因为您发布的是 SNAPSHOT
版本。此时间戳是一项允许区分不同快照构建的功能,例如在有限的时间内使用它们并在以后清除它们。当您发布不使用 -SNAPSHOT
后缀的适当工件版本时,不会发生这种情况。
为了 CI 构建的可重复性,当您在 CI 上构建软件时,您不应该使用 SNAPSHOT
依赖项。 SNAPSHOT
版本可以被覆盖,特别是如果您禁用版本中的时间戳。
如果您的项目中没有代码更改,CI 构建是绿色的,但第二天有人覆盖了存储库中的 SNAPSHOT
依赖项并且构建现在是红色的怎么办?如果第二天您必须发布修补程序来解决紧急生产问题,但您必须专注于新的 SNAPSHOT
依赖项引入的问题,该怎么办?
您正在尝试解决错误的问题。 SNAPSHOT
仅用于本地开发。