我只想在使用插件-LOCAL发布到mavenLocal()时才将后缀maven-publish附加到我的 Artifact 版本中,以便在要将其添加到其他项目的依赖项时,
我可以这样添加依赖项:

dependencies {
    implementation("my.group", "my-jar", "1.0.0-LOCAL")
}
我尝试的解决方案是在发布时将字符串连接起来
publishing {
    publications {
        create<MavenPublication>("maven") {
            artifacts {
                artifact(tasks["sourcesJar"]) {
                    builtBy(tasks["remapSourcesJar"])
                    version += "LOCAL"
                }

                artifact(tasks["javadocJar"]) {
                    version += "LOCAL"
                }
                artifact(tasks["remapJar"]) {
                    version += "LOCAL"
                }
            }
        }

        repositories {
            mavenLocal()
            maven(url = "some url") { name = "E" }
        }
    }
}
但是,更改不是动态的,这将在我发布时更改版本名称
到其他存储库中(可能我还没有尝试过)。我只想改变
仅在本地发布时。
我该如何解决这个问题?

最佳答案

您应该具有2个发布文物,然后有条件地发布..参见https://docs.gradle.org/current/userguide/publishing_customization.html

publishing {
    publications {
        mavenLocal(MavenPublication) {
            version += "-LOCAL"
            from components.java
        }
        maven(MavenPublication) {
            from components.java
        }
    }
    repositories {
        maven {
            url = uri("$buildDir/repos/releases")
        }
        maven {
            url = uri("$buildDir/repos/snaps")
        }
    }
}

tasks.withType(PublishToMavenRepository) {
    onlyIf {
        publication == publishing.publications.maven
    }
}
tasks.withType(PublishToMavenLocal) {
    onlyIf {
        publication == publishing.publications.mavenLocal
    }
}

关于kotlin - Gradle:仅在发布到本地时才更改工件名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/63259253/

10-12 00:29
查看更多