最新版的nexus除了可以做maven仓库的代理私服,还可以作为golang下载第三方资源包的代理私服。
以admin用户登录到nexus,添加一个go(proxy),名字随便起,最主要的是远程代理地址需要填写:
https://goproxy.io/ 或者用国外的 https://athens.azurefd.net
还有国内阿里云的 https://mirrors.aliyun.com/goproxy/
注意这两个代理地址可能需要来回切换使用,一个下载不到的时候就换成另外一个,仓库不用删除重建。
修改仓库配置,把内容校验和自动阻止无法访问资源的再次重试等去掉,配置结果如下:
在客户端开发机器上面配置系统环境变量,GO111MODULE=auto,
然后新建go项目,执行
go mod init
创建一个go.mod文件,
然后写代码,最主要的是import你的项目需要用到的第三方文件,例如到gin框架:
package main
import (
"github.com/gin-gonic/gin"
)
func main() {
router := gin.Default()
router.Run()
}
然后设置go module代理为你刚刚配置的nexus内网私服地址,例如
set GOPROXY=http://192.168.1.100:8081/repository/goproxy/
再执行以下命令:
go mod vendor
go mod download
再次登录到nexus里面去看的时候,就可以看到nexus缓存的go第三方组件包了,如下图:
这样后续再次加载时就可以走nexus的本地缓存了。
另外,阿里云的代理是个好东东,有好多的代理,在这里
https://developer.aliyun.com/mirror
https://opsx.alibaba.com/mirror (旧的已经不能用了)