0

0

如何在Golang中配置JFrog Artifactory代理 Go语言企业级制品库集成

P粉602998670

P粉602998670

发布时间:2026-03-12 13:57:12

|

907人浏览过

|

来源于php中文网

原创

artifactory 作 go 代理需配置 goproxy 为 https://artifactory.example.com/artifactory/api/go/your-go-repo-name(末尾无斜杠),且必须创建 go 类型远程仓库;启用 gosumdb 需额外配置 gochecksum 类型仓库并指向其 api 路径。

如何在golang中配置jfrog artifactory代理 go语言企业级制品库集成

go env 里 GOPROXY 设成 Artifactory 地址就行,但必须带 /go 后缀

Artifactory 不是普通 HTTP 代理,它把 Go 模块代理功能挂在一个子路径下。如果只配 https://artifactory.example.comgo get 会 404 —— 因为 Go 客户端默认请求的是根路径下的 /proxy/golang.org 这类地址,而 Artifactory 要求走 /go/...

正确做法是把 GOPROXY 设为:https://artifactory.example.com/artifactory/api/go/<em>your-go-repo-name</em>。注意末尾不加斜杠,且 your-go-repo-name 必须是 Artifactory 里已创建的 Go 类型远程仓库(Remote Repository),不是通用代理仓库。

  • Artifactory 管理后台 → Repositories → Add New Repository → Remote Repository → Package Type 选 Go
  • Remote URL 填官方镜像,比如 https://proxy.golang.orghttps://goproxy.cn,不能留空
  • Repository Key 就是上面 URL 里 your-go-repo-name 的值,比如叫 go-proxy
  • 设完后立刻 go env -w GOPROXY=https://artifactory.example.com/artifactory/api/go/go-proxy

启用 GOSUMDB 时,Artifactory 需单独配置 GoChecksum 仓库

Go 默认校验模块哈希(GOSUMDB=sum.golang.org),但 Artifactory 不自动代理 checksum 请求。直接复用同一个 Go 远程仓库会失败,go get 报错:verifying github.com/some/pkg@v1.2.3: checksum mismatch

必须新建一个类型为 GoChecksum 的远程仓库,Remote URL 设为 https://sum.golang.org(或国内替代如 https://goproxy.cn),再在 GOSUMDB 里指向它:

立即学习go语言免费学习笔记(深入)”;

Favird No-Code Tools
Favird No-Code Tools

无代码工具的聚合器

下载
  • 新建 Remote Repository,Package Type 选 GoChecksum
  • Remote URL 填 https://sum.golang.org,Repository Key 记作 go-checksum
  • 执行 go env -w GOSUMDB="https://artifactory.example.com/artifactory/api/go/go-checksum"
  • 别漏掉 GOINSECURE:如果 Artifactory 是 HTTP 或自签名 HTTPS,还得加 go env -w GOINSECURE="artifactory.example.com"

go build 本地依赖没走代理?检查 replaceexclude 是否绕过了代理

Artifactory 只代理远程模块(go.mod 里没被 replaceexclude 掉的)。如果项目里写了 replace github.com/foo/bar => ./local/bar,那 go build 根本不会连 Artifactory —— 这不是 bug,是 Go 的设计逻辑。

常见误判场景:

  • CI 构建失败,但本地 go build 成功 → 很可能是本地有 replace 指向本地路径,CI 机器没有该目录
  • 私有模块 401 → Artifactory 的 Go 远程仓库没开「Propagate Authentication」,或者 Token 没传给 go 命令(需配 ~/.netrc 或环境变量 ARTIFACTORY_USER/ARTIFACTORY_KEY
  • 模块版本解析异常(比如拉到 v0.0.0-20220101000000-abc123)→ Artifactory 的 Go 远程仓库没启用「Bypass Head Requests」,导致无法正确识别语义化版本

调试连不上 Artifactory?先看 go list -m -json all 输出和网络日志

go list 会真实触发模块解析和代理请求,比 go get 更安静、更底层。它输出 JSON,字段 Origin.URL 能确认当前模块实际从哪拉的 —— 如果还是 https://proxy.golang.org,说明 GOPROXY 没生效或被其他配置覆盖。

-vGOROOT/src/cmd/go/internal/modfetch 相关日志能定位卡点:

  • 运行 go list -m -json all 2>&1 | grep -i artifactory,看有没有请求发出
  • 设环境变量 GODEBUG=http2debug=2,观察 HTTP 请求是否发到了 Artifactory 地址
  • Artifactory 后台 → Admin → Monitoring → Request Logs,筛选 GET /artifactory/api/go/...,确认请求是否到达、返回码是多少
  • 别忽略 DNS 和 TLS:用 curl -v https://artifactory.example.com/artifactory/api/go/go-proxy/github.com%2Fgolang%2Fnet/@v/list 手动测通路

Artifactory 的 Go 代理行为高度依赖仓库类型和路径拼接规则,少一个 /go/、多一个斜杠、类型选错,都会静默失败。调的时候盯着 URL 和返回状态码,比看文档更快。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
golang如何定义变量
golang如何定义变量

golang定义变量的方法:1、声明变量并赋予初始值“var age int =值”;2、声明变量但不赋初始值“var age int”;3、使用短变量声明“age :=值”等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

210

2024.02.23

golang有哪些数据转换方法
golang有哪些数据转换方法

golang数据转换方法:1、类型转换操作符;2、类型断言;3、字符串和数字之间的转换;4、JSON序列化和反序列化;5、使用标准库进行数据转换;6、使用第三方库进行数据转换;7、自定义数据转换函数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

247

2024.02.23

golang常用库有哪些
golang常用库有哪些

golang常用库有:1、标准库;2、字符串处理库;3、网络库;4、加密库;5、压缩库;6、xml和json解析库;7、日期和时间库;8、数据库操作库;9、文件操作库;10、图像处理库。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

356

2024.02.23

golang和python的区别是什么
golang和python的区别是什么

golang和python的区别是:1、golang是一种编译型语言,而python是一种解释型语言;2、golang天生支持并发编程,而python对并发与并行的支持相对较弱等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

214

2024.03.05

golang是免费的吗
golang是免费的吗

golang是免费的。golang是google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的开源编程语言,采用bsd开源协议。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

409

2024.05.21

golang结构体相关大全
golang结构体相关大全

本专题整合了golang结构体相关大全,想了解更多内容,请阅读专题下面的文章。

490

2025.06.09

golang相关判断方法
golang相关判断方法

本专题整合了golang相关判断方法,想了解更详细的相关内容,请阅读下面的文章。

201

2025.06.10

golang数组使用方法
golang数组使用方法

本专题整合了golang数组用法,想了解更多的相关内容,请阅读专题下面的文章。

1458

2025.06.17

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

76

2026.03.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Go 教程
Go 教程

共32课时 | 6.1万人学习

Go语言实战之 GraphQL
Go语言实战之 GraphQL

共10课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号