繁体   English   中英

从 repo url 中删除了 Gradle 依赖项 groupId

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM