[英]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.