3 回答
TA贡献1812条经验 获得超5个赞
服务器需要按照https://golang.org/cmd/go/#hdr-Remote_import_paths中描述的协议https://mod.org/bar
返回元数据。go-import
存在多种开源实现,例如:
rsc.io/go-import-redirector
github.com/GoogleCloudPlatform/govanityurls
您可以将 HTTPS 服务器和底层存储库的凭据(或访问令牌)存储在文件中.netrc
,并使用GOPRIVATE
环境变量告诉go
命令不要在公共代理中查找您的私有存储库。
TA贡献1821条经验 获得超6个赞
你不能使用没有.git扩展的私有仓库,因为 go 工具不知道你的私有仓库、git 或 svn 或任何其他的版本控制协议。
或者github.com它们golang.org被硬编码到 go 的源代码中。
go 工具将https在获取您的私人存储库之前进行查询以了解:
https://private/user/repo?go-get=1
如果你的私有仓库不支持https,请使用replacego模块的语法直接告诉go工具:
require private/user/repo v1.0.0
...
replace private/user/repo => private.server/user/repo.git v1.0.0
https://golang.org/cmd/go/#hdr-Remote_import_paths
TA贡献1757条经验 获得超8个赞
解决问题的步骤:
1️⃣ 将模块声明更改go.mod
为
module mod.org/gomod/bar go 1.16
bitbucket
与存储库结构相同
存储库对克隆的引用:
http://localhost:7990/scm/gomod/bar.git
ssh://git@mod.org/gomod/bar.git
2️⃣ 更改.gitconfig:添加insteadOf(ssh或https)
# [url "http://localhost:7990/scm"]
[url "ssh://git@mod.org"]
insteadOf = https://mod.org
3️⃣ 添加https://mod.org到私有存储库
go env -w GOPRIVATE="mod.org"
go mod download❗完成所有准备工作后,可以通过以下方式从其他模块访问该模块version tags
module mod.org/gomod/foo
go 1.16
require (
mod.org/gomod/bar v1.0.0-beta.1
)
replace (
mod.org/gomod/bar => mod.org/gomod/bar.git v1.0.0-beta.1
)
或手动
go get -u mod.org/gomod/bar.git
go get mod.org/gomod/bar.git@v1.0.0-beta.1
- 3 回答
- 0 关注
- 178 浏览
添加回答
举报