gpt4 book ai didi

gradle - 我如何依赖 Gradle 中 Artifactory 的发布和快照?

转载 作者:行者123 更新时间:2023-12-02 01:29:58 25 4
gpt4 key购买 nike

我觉得我错过了 Artifactory 的“虚拟 repo ”概念。我是 Artifactory 和 Gradle 的新手,之前使用过 Nexus 和 Maven,我不记得过去遇到过这类问题。

我觉得我有一个相当正常的场景,我主要需要发布依赖项,在开发过程中需要一些快照依赖项。

发布依赖项可从虚拟存储库“libs-release”(包括“libs-release-local”等其他存储库)获得,快照可在“libs-snapshot”中获得。

我感到困惑的是我应该如何使用 Artifactory 插件在 Gradle 中定义它?从文档和示例中,我认为我需要类似的东西:

artifactory {
contextUrl = 'http://my-artifactory/artifactory'

resolve {
repository {
repoKey = 'all-my-libs'
}
}
}

但这感觉不对 - 如果我只是将它们全部放在一起使用,那么单独的存储库有什么意义?在 this question 的回答中发表评论支持我的担忧。该问题涉及 /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 Conflict)查找发布依赖项。

那么 - 我错过了什么?我是否应该要求拥有 Artifactory 管理员权限的人创建一个结合了 libs-releaselibs-snapshot 的新虚拟仓库?还是别的?

最佳答案

可以使用解析存储库来覆盖所有其他存储库定义,并确保所有 Artifactory 都是从中央存储库解析的。
这个中央存储库通常是一个 virtual repository在 Artifactory 中。使用虚拟存储库有很多好处,例如,它允许您控制可以解析哪些 Artifactory (通过从虚拟中添加/删除存储库),而无需更改构建脚本中使用的 URL。

解析存储库的另一个用途是当插件用于发布时 build information到 Artifactory。在构建过程中解决的所有依赖项的列表作为构建信息的一部分收集。

请注意,这是一项可选功能。您可以继续使用常规的 Gradle 方式来配置存储库。

关于gradle - 我如何依赖 Gradle 中 Artifactory 的发布和快照?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34876410/

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