我觉得Artifactory的“虚拟库”概念有些棘手。我之前使用过Nexus和Maven,但是对Artifactory和Gradle都比较陌生。以前从未遇到过这种问题。
我认为我的场景相当普通,需要大部分的发布依赖和一些开发时的快照依赖。
发布依赖可以在虚拟库“libs-release”(其中包括“libs-release-local”等其他库)中找到,而快照则可以在“libs-snapshot”中找到。
我困惑的是如何在Gradle中使用Artifactory插件定义依赖关系?根据文档和示例,我认为需要类似于以下内容:
但这感觉不对 - 如果我把它们全部混在一起使用,那么分开的存储库有什么意义呢?在这个问题的回答中,评论支持了我的担忧。该问题讨论了
但是当我包含Artifactory插件时,似乎
我认为我的场景相当普通,需要大部分的发布依赖和一些开发时的快照依赖。
发布依赖可以在虚拟库“libs-release”(其中包括“libs-release-local”等其他库)中找到,而快照则可以在“libs-snapshot”中找到。
我困惑的是如何在Gradle中使用Artifactory插件定义依赖关系?根据文档和示例,我认为需要类似于以下内容:
artifactory {
contextUrl = 'http://my-artifactory/artifactory'
resolve {
repository {
repoKey = 'all-my-libs'
}
}
}
但这感觉不对 - 如果我把它们全部混在一起使用,那么分开的存储库有什么意义呢?在这个问题的回答中,评论支持了我的担忧。该问题讨论了
/repo
虚拟存储库,但出于某种原因,我无法使用它。如果我尝试使用它,会收到403 Forbidden
。
如果没有Artifactory,我将定义多个存储库,如下所示:
repositories {
// other repos...
maven { url 'http://my-artifactory/releases' }
maven { url 'http://my-artifactory/snapshots' }
}
但是当我包含Artifactory插件时,似乎
repositories
闭包要么被忽略要么被切割了 - 类似于上面的示例,没有 resolve
闭包,Gradle似乎只尝试从 http://my-artifactory/snapshots
库获取依赖项,并在尝试查找发布依赖项时失败(出现 409冲突
)。
那么 - 我错过了什么?我应该要求具有Artifactory管理员权限的人创建一个新的虚拟存储库,将 libs-release
和 libs-snapshot
组合起来吗?还是其他什么?