gpt4 book ai didi

gradle - 使用 Gradle 上传到 Maven Central,避免未知属性错误

转载 作者:行者123 更新时间:2023-12-04 04:08:00 35 4
gpt4 key购买 nike

我正在尝试将我的第一个 Gradle 项目上传到 Maven Central。我已关注 Sonatype's documentation为此并创建了一个 uploadArchives生成元数据的任务。

uploadArchives {
repositories {
mavenDeployer {
beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }

repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
authentication(userName: ossrhUsername, password: ossrhPassword)
}

snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {
authentication(userName: ossrhUsername, password: ossrhPassword)
}
...etc. etc.

该任务引用了两个属性,“ossrhUsername”和“ossrhPassword”,我应该在 gradle.properties 中定义它们。 ;但是,如果我没有 gradle.properties使用这些属性,构建失败并出现错误,即使对于非 uploadArchives任务。
$ gradlew test

Could not get unknown property 'ossrhUsername' for object of type org.gradle.api.publication.maven.internal.deployer.DefaultGroovyMavenDeployer.



我希望构建成功(当然,除了 uploadArchives 任务)而不必在 gradle.properties 中定义这些属性。文件。

我该怎么做?

单独管理一个 pom.xml 会更简单吗?专门用于Maven Central上传?

编辑 经鉴定 potential duplicate是关于在哪里外部化凭据。我的问题是如何确保 Gradle 构建仍然成功执行,尽管凭证没有在 gradle.properties 中被外部化。 .我希望其他人能够克隆 repo 并执行 Gradle,而无需定义 OSSRH 凭证属性。

最佳答案

我没有直接引用属性,而是将属性名称作为字符串传递给 findProperty ,从而消除了错误。 API documentation表示此方法是“孵化”,但自 2.13 版以来一直存在。

  repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
authentication(userName: findProperty('ossrhUsername'), password: findProperty('ossrhPassword'))
}

snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {
authentication(userName: findProperty('ossrhUsername'), password: findProperty('ossrhPassword'))
}

关于gradle - 使用 Gradle 上传到 Maven Central,避免未知属性错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43710659/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com