gradle maven-publish插件添加了时间戳,如何避免将其放入后缀

时间:2019-01-14 13:51:10

标签: java maven gradle nexus

我正在使用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
            }
        }
    }
}

1 个答案:

答案 0 :(得分:2)

那是因为您正在发布SNAPSHOT版本。此时间戳是一项功能,可以区分不同的快照版本,例如在有限的时间内使用它们,并在以后清除它们。当您发布不使用后缀-SNAPSHOT的适当工件版本时,就不会发生这种情况。

出于CI构建可重复性的考虑,在CI上构建软件时,切勿使用SNAPSHOT依赖项。可以覆盖SNAPSHOT个版本,尤其是在版本中禁用时间戳时。

如果您的项目中没有代码更改,CI构建为绿色,但是第二天有人覆盖存储库中的SNAPSHOT依赖项,并且构建现在为红色,该怎么办?如果第二天您必须发布一个修复程序来解决紧急生产问题,而您却不得不关注新的SNAPSHOT依赖项所带来的问题,该怎么办?

您正在尝试解决错误的问题。 SNAPSHOT仅用于本地开发。