Artifactory 中 go 项目的远程存储库不代理?

Remote repository for a go project in Artifactory doesn't proxy?

我正在尝试了解如何在 Artifactory 中为 Go 项目使用远程存储库。我最初的期望是它会透明地工作,我需要做的就是将 GORPOXY 变量指向一个虚拟存储库(后面有本地和远程),执行 go build 并且依赖项将是从 Artifactory 缓存下载或 Artifactory 将透明地下载它们。类似于它对 Maven 依赖项的工作方式。

当我尝试这样做时,它抱怨说在 artifactory 中找不到依赖项。好的

阅读 the documentation 有两点很突出。首先,没有关于 GOPROXY 的任何内容,一切都是关于使用 artifactory cli。由于几个原因,这是一个很大的缺点。 其次,您需要使用 jfrog rt go-publish go --self=false --deps=ALL 手动发布依赖项,然后依赖项出现在本地存储库下。

所以我想弄清楚是否 1) 我可以避免使用 JFrog CLI 和 2) 如果远程存储库不代理,那么它们有什么意义?或者我可能遗漏了什么?

Artifactory 6.3.0

我理解你在博客 post 中提到的困惑,但我感觉作者的意图是更多地展示如何使用 JFrog CLI。

回答您的问题:

1) 是的,您不必使用 JFrog CLI 来构建。请检查 the documentation on how to set up a remote repository for Go. This will guide you through setting up GitHub or GoCenter 作为您的 Go 构建的远程存储库。这将允许您按照此结构 <protocol>://<username>:<password>@<artifactory domain>/api/go/<go repository>.

设置 GOPROXY 环境变量

2)远程仓库绝对会充当代理,缓存你从远程仓库下载的内容(从user guide复制一部分:A remote Go repository in Artifactory serves as a caching proxy for a public Go registry such as GoCenter or GitHub.