【发布时间】:2021-03-16 14:16:59
【问题描述】:
我在http://localhost:7990 上有私人bitbucket 回购 ???????? 克隆链接 http://localhost:7990/scm/gom/bar.git
go.mod 看起来像:
module mod.org/bar
go 1.13
远程存储库中可用的参考:
git ls-remote http://localhost:7990/scm/gom/bar.git
From http://localhost:7990/scm/gom/bar.git
d456de4f12785b26ac27ba08cffb76687d1287c8 HEAD
d456de4f12785b26ac27ba08cffb76687d1287c8 refs/heads/master
f948bd47a22c5fb9abed5bff468a10fc24f67483 refs/tags/v1.0.0
我把.gitconfig改成了
[url "http://localhost:7990/scm/gom"]
insteadOf = https://mod.org
并试图通过name获取模块,得到 no such host错误:
go get -v mod.org/bar
go get lmod.org/bar: unrecognized import path "lmod.org/bar" (https fetch: Get https://lmod.org/bar?go-get=1: dial tcp: lookup lmod.org: no such host)
当我添加扩展名.git
go get -v mod.org/bar.git
go: finding lmod.org/bar.git v1.0.0
go: downloading lmod.org/bar.git v1.0.0
verifying lmod.org/bar.git@v1.0.0: lmod.org/bar.git@v1.0.0: reading https://sum.golang.org/lookup/lmod.org/bar.git@v1.0.0: 410 Gone
go下载带有标签v1.0.0到GOPATH = /Users/user/go"的版本:
$GOPATH
└── go
└── pkg
└── mod
└── cache
└── download
└── mod.org
└── bar.git
└── @v
├── v1.0.0.info
├── v1.0.0.lock
└── v1.0.0.zip.tmp882433775
,但我仍然不能在其他 go-project 中使用一个作为依赖项。
【问题讨论】:
-
为什么不在你的 go.mod 中使用替换指令?
-
为什么不简单的把依赖的代码放到$GOPATH/src中呢?
-
@Markus W Mahlberg - 我尝试使用本地
bitbucketrepo 作为自我(私有)依赖项的持有者。我还使用go modules来自动化获取和控制公共/私有依赖项的过程。 -
@Volker - 我想使用私有 repo 是公开的,但
replace会在配置中产生噪音。对于我所有的私人依赖,我必须写replace lmod.org/xxx => lmod.org/xxx.git v1.0.0 -
您的本地 bitbucket 有一个主机名。所以你的导入路径是
your.host.name/owner/repo。您可以在$GOPATH中使用相同的路径
标签: git go bitbucket go-modules go-get