小编Wil*_*lin的帖子

管理通过非标准端口访问的自定义 Go 模块

背景

在我的公司,我们使用 Bit Bucket 来托管 git 存储库。流向服务器的所有流量都流经自定义的非标准端口。从我们的存储库克隆看起来像这样git clone ssh://git@stash.company.com:9999/repo/path/name.git

问题

我想创建托管在该服务器上并由 管理的 Go 模块go mod,但是,流量必须流经端口这一事实9999使得这非常困难。这是因为go mod在标准端口上运行,并且似乎没有提供为不同模块自定义端口的方法。

我的问题

是否可以使用go mod非标准端口来管理托管在私有 git 服务器上的 Go 模块?

尝试过的解决方案

售货

这似乎是最接近提供解决方案的。首先我是go mod vendor想要使用这些 Go 模块的 Go 应用程序,然后是目录git submodule中的 Go 模块vendor/。在需要更新或添加模块的情况下,这可以完美地工作。go mod tidy将一直无法下载或更新其他 Go 模块,因为它无法访问自定义 Go 模块的“git URL”。即使-e设置了标志。

编辑.gitconfig

编辑以.gitconfig将不带端口的 URL 替换为带端口的 URL 是一种可行的解决方案,但这是一种非常肮脏的黑客行为。首先,必须对任何新模块以及每个开发人员进行这些编辑。其次,在处理这些存储库时,这可能会中断其他 git 进程。

go vendoring go-modules

5
推荐指数
1
解决办法
1163
查看次数

标签 统计

go ×1

go-modules ×1

vendoring ×1