繁体   English   中英

Go mod 用私有分支替换依赖

[英]Go mod replace dependency with private fork

我将依赖项添加到go.mod

require (
    github.com/labstack/echo/v4 v4.3.1
)

replace (
    github.com/labstack/echo/v4 => example.com/echo/v4.git v4.3.1
)

并出现错误,例如replace example.com/echo.git: version "v4.3.1" invalid: module contains a go.mod file, so major version must be compatible: should be v0 or v1, not v4 具有所需版本的标签存在于 repo 中。

当我尝试使用该版本时,我得到了类似v1.2.1-0.20210520145606-2defe74d39f0的东西,但是当我将替换部分设置为:

replace (
    github.com/labstack/echo/v4 => example.com/echo/v4.git v1.2.1-0.20210520145606-2defe74d39f0
)

我收到与私有 git 服务器相关的错误errno=Connection refused denied。

您能否告知我做错了什么以及如何用我的私人分叉替换依赖项?

  • 确保您的回购路径是准确的。 v4.git 表示 repo 被称为 v4; 如果这是真的,那没关系,但如果不是用正确的 repo 名称替换它,并在其后保留 v4.xx 标记。

  • 如果分叉是私有的,那么 sum.golang.org 可能无法访问它。 确保将 GOPRIVATE 设置为您的私有分支,以便 Go 不会尝试获取校验和。

     go env -w GOPRIVATE=example.com

如果替换存储库托管在example.com/echo的 Git 存储库中,则替换的路径可能应该是example.com/echo.git/v4

replace (
    github.com/labstack/echo/v4 v4.3.1 => example.com/echo.git/v4 v4.3.1
)

如果example.com服务器提供go-import metadata ,那么您可以完全省略.git后缀:

replace (
    github.com/labstack/echo/v4 v4.3.1 => example.com/echo/v4 v4.3.1
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM