如何在不尝试更新其他模块的情况下为特定模块使用"go get"或"go mod vendor"?



我正试图从github获得一个项目的特定包。

然而,当我使用go get [url]go mod vendor时,我会收到一个git fetch错误,因为我的公司的一个repo没有权限。这个回购是出售的,这就是我们如何绕过它进行测试、构建等。

这是错误消息:

go: private.work.repo.com/project/repo@v0.0.0-20190703160253-9c6eb80851f1: invalid version: git fetch -f origin refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in C:UsersNICHOLAS.TANgopkgmodcachevcs37594aeb10b98234e04b4780cf59f32c4ad7bb9da460f552103ae748cea73aa1: exit status 128:
        fatal: remote error: Repository not found
        The requested repository does not exist, or you do not have permission to
        access it.

有没有一种方法可以让我使用go get和/或go mod vendor,而不需要这些命令来查看其他模块依赖关系?

您可以在项目目录中使用go get <package>@<version>获得特定版本的包,例如:

% go get github.com/golang/protobuf@v1.4.0 
go: downloading github.com/golang/protobuf v1.4.0

请仅将get github.com/golang/protobuf软件包所需的版本下载到本地缓存($GOPATH/pkg/mod(,并将版本设置为go.mod文件。

毕竟,如果您在本地缓存($GOPATH/pkg/mod(中有来自公司repo的依赖项,请使用go mod vendor创建vendor(从缓存中获取依赖项(。

获取专用模块时会出现此类问题,请检查本地系统中已完成的以下配置

更新git全局配置url

 git config --global --add url."git@github.com:".insteadOf "https://github.com/"  

更新go env以访问私有go模块

go env -w GOPRIVATE=github.com/abc/*

然后运行安装命令

相关内容

  • 没有找到相关文章

最新更新