[英]Azure blob storage 12.5.0 dependency removed from maven central repo
[英]Gradle dependency groupId removed from repo url
有一个 gradle 项目,它在内部 maven 存储库中托管了一些依赖项。 存储库的 url 是http://code.company.com/api/v4/groups/myApp/-/packages/maven/
如果 maven 存储库的 url 中包含除组 id 的最后一部分之外的所有依赖项,则 Gradle 无法下载依赖项。
工作示例:
api: 'org.stuff.myApp.utils:core:1.0.0'
-> Gradle tries to download
https://code.company.com/api/v4/groups/myApp/-/packages/maven/org/stuff/myApp/utils/core/1.0.0/core-1.0.0.pom
-> This URL is correct
不好的例子:
api: 'com.company.myApp.utils:core:1.0.0'
-> Gradle tries to download
https://code.company.com/api/v4/groups/myApp/-/packages/maven/utils/core/1.0.0/core-1.0.0.pom
-> This URL is wrong, most parts of the group id are mising from the path.
It should be
https://code.company.com/api/v4/groups/myApp/-/packages/maven/com/company/myApp/utils/core/1.0.0/core-1.0.0.pom
我已经在几个 gradle 版本(包括最新的 6.7.1)中尝试过这个,但在文档中找不到任何相关内容。 有谁知道这是否是预期的行为以及如何强制 gradle 始终附加完整的组 ID?
经过几个小时的调试,我找到了根本原因:我尝试使用的库依赖于另一个 gradle 项目:
com.company.myApp.utils
|-- core
|-- other
core
通过声明implementation project(':other')
依赖于other
,但根项目没有关联的名称。 因此生成的 pom 包含错误的组 ID。
解决方案是添加
rootProject.name = 'com.company.myApp'
到库的settings.gradle
文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.