发布项目至Sonatype仓库报错:repositoryUrl为null
问题原因及解决办法
你这段配置的核心问题是在repositories里的外层maven块没有设置仓库URL,反而在内部嵌套了新的maven仓库配置。Gradle会把外层命名为sonatype的仓库当作发布目标,但这个仓库未指定任何URL,因此抛出了repositoryUrl为null的错误。
修正后的配置
将嵌套的maven块调整为直接给外层sonatype仓库设置URL,修改后的repositories代码块如下:
repositories { maven { name = "sonatype" url = uri( if (version.toString().endsWith("SNAPSHOT")) { "https://s01.oss.sonatype.org/content/repositories/snapshots/" } else { "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/" } ) credentials(PasswordCredentials::class) } }
说明
修改后,sonatype仓库会根据版本是否为SNAPSHOT自动切换对应URL,同时保留凭证配置,Gradle能正确识别仓库地址,即可解决URL为空的报错。
内容的提问来源于stack exchange,提问作者Roäc
相关产品推荐
相关产品推荐

