go.mod关于go版本异常的处理
1.私有仓库
go.mod 要注意module的配置mod地址,要与下载地址一致。 否则就算下载下来,就会比较后报错。
module test.com/devGroup/devProjectgo 1.22.2
2. 代码中的包引用地址。 要与module中的mod路径一致
package mainimport ("module test.com/devGroup/devProject/auth")func main() {auth.VerifyPassword("a","b")}
2. 三方代码引用
1. 私有库的拉取配置,有三种方式
ssh
私钥放在本地: 用户/.ssh/ 的目录中。
如:C:\Users\cdh01\.ssh
2.访问令牌
3.帐号和密码
3. 常见报错
1.https下载,报证书错误。
go: finding module for module test.com/devGroup/devProject/auth
go: test_license imports
module test.com/devGroup/devProject/auth: git ls-remote -q origin in C:\Users\cdh01\go\pkg\mod\cache\vcs\99dd5007e5aec88cc093db13a6ac0aa19fca2484485f41d0343c495d867d4b71: exit status 128:
fatal: unable to access 'https://test.com/devGroup/devProjec.git/':test.com/devGroup/devProjecthttps://test.com/devGroup/devProjec.git/':test.com/devGroup/devProjecthttps://test.com/devGroup/devProjec.git/':test.com/devGroup/devProjecthttps://test.com/devGroup/devProjec.git/':test.com/devGroup/devProjecthttps://test.com/devGroup/devProjec.git/':test.com/devGroup/devProjecthttps://test.com/devGroup/devProjec.git/':test.com/devGroup/devProjecthttps://test.com/devGroup/devProjec.git/':test.com/devGroup/devProjecthttps://test.com/devGroup/devProjec.git/': SSL certificate problem: unable to get local issuer certificate
解决方式:
临时绕过:git config --global http.sslVerify false
或采用git@的方式进行下载
2. 对于奇怪的私有域名不识别。
go mod tidy
go: finding module for package test.com/devGroup/devProject/auth
go: downloading test.com/devGroup/devProject v0.0.0-20250506075833-7f2f4412776b
go: test_license imports
test.com/devGroup/devProject/auth: test.com/devGroup/devProject@v0.0.0-20250506075833-7f2f4412776b: verifying module: test.com/devGroup/devProject@v0.0.0-20250506075833-7f2f4412776b: reading https://goproxy.cn/sumdb/sum.golang.org/lookup/test.com/devGroup/devProjec@v0.0.0-20250506075833-7f2f4412776b:test.com/devGroup/devProjecthttps://goproxy.cn/sumdb/sum.golang.org/lookup/test.com/devGroup/devProjec@v0.0.0-20250506075833-7f2f4412776b:test.com/devGroup/devProjecthttps://goproxy.cn/sumdb/sum.golang.org/lookup/test.com/devGroup/devProjec@v0.0.0-20250506075833-7f2f4412776b:test.com/devGroup/devProjecthttps://goproxy.cn/sumdb/sum.golang.org/lookup/test.com/devGroup/devProjec@v0.0.0-20250506075833-7f2f4412776b:test.com/devGroup/devProjecthttps://goproxy.cn/sumdb/sum.golang.org/lookup/test.com/devGroup/devProjec@v0.0.0-20250506075833-7f2f4412776b:test.com/devGroup/devProjecthttps://goproxy.cn/sumdb/sum.golang.org/lookup/test.com/devGroup/devProjec@v0.0.0-20250506075833-7f2f4412776b:test.com/devGroup/devProjecthttps://goproxy.cn/sumdb/sum.golang.org/lookup/test.com/devGroup/devProjec@v0.0.0-20250506075833-7f2f4412776b:test.com/devGroup/devProjecthttps://goproxy.cn/sumdb/sum.golang.org/lookup/test.com/devGroup/devProjec@v0.0.0-20250506075833-7f2f4412776b: 404 Not Found
server response: not found: test.com/devGroup/devProject@v0.0.0-20250506075833-7f2f4412776b: unrecognized import path "test.com/devGroup/devProject": https fetch: Get "https://test.com/devGroup/devProjec?go-get=1test.com/devGroup/devProjecthttps://test.com/devGroup/devProjec?go-get=1test.com/devGroup/devProjecthttps://test.com/devGroup/devProjec?go-get=1test.com/devGroup/devProjecthttps://test.com/devGroup/devProjec?go-get=1test.com/devGroup/devProjecthttps://test.com/devGroup/devProjec?go-get=1test.com/devGroup/devProjecthttps://test.com/devGroup/devProjec?go-get=1test.com/devGroup/devProjecthttps://test.com/devGroup/devProjec?go-get=1test.com/devGroup/devProjecthttps://test.com/devGroup/devProjec?go-get=1": dial tcp: lookup git.dbu.test on 8.8.8.8:53: no such host
原因: 是默认下载包走了代码。
解决方式:
配置为私有库就不走代理了 go env -w GOPRIVATE=test.com/devGroup/devProject
3. 下载地址与私有库mod.module配置的地址不一致,导致异常。
go: finding module for package test.com/devGroup/devProject/auth
go: downloading test.com/devGroup/devProject v0.0.0-20250506075833-7f2f4412776b
go: found test.com/devGroup/devProject/auth in test.com/devGroup/devProject v0.0.0-20250506075833-7f2f4412776b
go: test_license imports
test.com/devGroup/devProject/auth: test.com/devGroup/devProject@v0.0.0-20250506075833-7f2f4412776b: parsing go.mod:
module declares its path as: aa.test.com/aa-devProject
but was required as: test.com/devGroup/devProject
4.下载异常
go mod tidy
go: test_license imports
10.251.24.113:2222/devGroup/devProject/auth: malformed import path "10.251.24.113:2222/devGroup/devProject/auth": invalid char ':'
原因:git@的host必须用域名,不能用IP要端口的方式。
解决方式:采用https的下载方式。
或通过配置来实现动态的切换 git config --global url."git@test.com:".insteadOf "https://test.com"
其他:
三者的关系
变量 | 功能 | 典型值 | 是否必须 |
---|---|---|---|
GOPRIVATE | 定义私有模块 | *.test.com | ✅ 是(主开关) |
GONOPROXY | 私有模块不走代理 | *.test.com | 可选(默认继承 GOPRIVATE ) |
GONOSUMDB | 私有模块不校验 checksum | *.test.com | 可选(默认继承 GOPRIVATE ) |
如果只设置 GOPRIVATE
,Go 会自动让 GONOPROXY
和 GONOSUMDB
与其保持一致。
但如果需要更精细控制(例如某些模块走代理但跳过 checksum),可以单独设置。