Go模块替换命令不起作用

Go模块替换命令不起作用,go,go-modules,Go,Go Modules,我有以下go模块示例的代码结构(macOS上的go 1.14.2) 预订关系 go.mod 梅因,加油 server.go 我为服务器添加了以下依赖项。转到 package main import bn "nurture.gitlab.com/Core/Contracs/BookingNexus/Gen/Go" 我在go.mod中添加了以下代码 module nurture.gitlab.com/Core/BookingNexus go 1.14 require ( nurtu

我有以下go模块示例的代码结构(macOS上的go 1.14.2)

预订关系

  • go.mod
  • 梅因,加油
  • server.go
我为服务器添加了以下依赖项。转到

package main
import bn "nurture.gitlab.com/Core/Contracs/BookingNexus/Gen/Go"
我在go.mod中添加了以下代码

module nurture.gitlab.com/Core/BookingNexus

go 1.14

require (
    nurture.gitlab.com/Core/Contracts latest
)

replace nurture.gitlab.com/Core/Contracts latest => /Users/.../Core/Contracts

因为我现在没有furtent.gitlab.com,所以我使用了
replace
指令,但是它仍然试图从furtent.gitlab.com下载,并说无法使用tcp。 如果我运行
go mod tidy

/Users/.../BookingNexus/go.mod:6: unrecognized import path "nurture.gitlab.com/Core/Contracts": https fetch: Get "https://nurture.gitlab.com/Core/Contracts?go-get=1": dial tcp: lookup nurture.gitlab.com: no such host
我希望replace命令应该提供另一种获取路径的方法,但是它仍然尝试从unexistenet路径下载,根本不考虑replace指令(我尝试了包括和排除,两次都得到了相同的消息)


有人能帮我解释一下为什么会出现这种情况吗?

如果您想根据包
合同的本地副本进行构建,您需要注释掉远程路径:

require (
    //
    // comment this out during local development:
    //
    // nurture.gitlab.com/Core/Contracts latest
)

replace nurture.gitlab.com/Core/Contracts => /Users/.../Core/Contracts
一旦开发完成并签入远程位置,则注释掉
替换
并恢复远程路径

本手册中适用于您案例的一些注意事项:

注意:如果replace指令的右侧是文件系统路径, 然后目标必须在该位置有一个go.mod文件。如果 go.mod文件不存在,您可以使用go mod init创建一个