使用 gradle 发布到 Maven 时删除附加到工件名称的默认 date.time

Remove default date.time appending to artifact name when publishing to maven with gradle

我正在使用 gradle 和 maven-publish 插件将工件发布到我们本地的 maven 仓库。

我的 build.gradle 看起来像(片段):

apply plugin: 'java'
apply plugin: 'maven-publish'

publishing {
    publications {
        mavenJava(MavenPublication) {
            groupId 'org.myorg'
            artifactId 'myapp'
            version '0.0.1-SNAPSHOT'

            from components.java
        }
    }
    repositories {
        maven {
            credentials {
                username 'myUsername'
                password 'myPassword'
            }
            url 'https://my.repo/snapshots/'
        }
    }
}

在 运行 publish 之后输出如下:

$ gradle publish
:generatePomFileForMavenJavaPublication
:processResources UP-TO-DATE
:compileJava UP-TO-DATE
:classes UP-TO-DATE
:jar UP-TO-DATE
:publishMavenJavaPublicationToMavenRepository
Upload https://my.repo/snapshots/org/myorg/myapp/0.0.1-SNAPSHOT/myapp-0.0.1-20161122.144856-2.jar
Upload https://my.repo/snapshots/org/myorg/myapp/0.0.1-SNAPSHOT/myapp-0.0.1-20161122.144856-2.jar.sha1
Upload https://my.repo/snapshots/org/myorg/myapp/0.0.1-SNAPSHOT/myapp-0.0.1-20161122.144856-2.jar.md5
Upload https://my.repo/snapshots/org/myorg/myapp/0.0.1-SNAPSHOT/myapp-0.0.1-20161122.144856-2.pom
Upload https://my.repo/snapshots/org/myorg/myapp/0.0.1-SNAPSHOT/myapp-0.0.1-20161122.144856-2.pom.sha1
Upload https://my.repo/snapshots/org/myorg/myapp/0.0.1-SNAPSHOT/myapp-0.0.1-20161122.144856-2.pom.md5
Upload https://my.repo/snapshots/org/myorg/myapp/0.0.1-SNAPSHOT/maven-metadata.xml
Upload https://my.repo/snapshots/org/myorg/myapp/0.0.1-SNAPSHOT/maven-metadata.xml.sha1
Upload https://my.repo/snapshots/org/myorg/myapp/0.0.1-SNAPSHOT/maven-metadata.xml.md5
Upload https://my.repo/snapshots/org/myorg/myapp/maven-metadata.xml
Upload https://my.repo/snapshots/org/myorg/myapp/maven-metadata.xml.sha1
Upload https://my.repo/snapshots/org/myorg/myapp/maven-metadata.xml.md5
:publish

BUILD SUCCESSFUL

Total time: 8.147 secs

文件和一切都存在 "is fine"。并不真地。 pom 等文件附加了 date.time。有没有办法不附加它们?

我遇到的问题是,当我尝试使用 sbt 向这个新库添加依赖项时,由于附加的日期和时间,它无法获取它。

谢谢!

这是预期的行为。当您发布快照时,maven 将在后台重命名该文件,以便始终可以通过 -SNAPSHOT

引用最新的

如果您尝试发布您的 jar,那么只需删除 -SNAPSHOT,您将看到它以 "$project.name-$project.version" 原样上传。

另一方面,如果您想将 jar 引用为快照,则只需确保已将快照存储库添加到 gradle

repositories {
    jcenter()
    url 'https://my.repo/snapshots/'
}

dependencies {
    compile "some.thing:blah:1.0-SNAPSHOT"
}