11

我只想使用使用 go 模块的本地包。

我在 goweb 文件夹中有这些文件:

在此处输入图像描述

和 go.mod

模块 goweb

go 1.12

require mypack v0.0.0

replace mypack => ./src/mypack

go.mod抱怨:

replacement module without version must be directory path (rooted or starting with .

去 -u ./...

go: parsing src/mypack/go.mod: open <local path>/goweb/src/mypack/go.mod: no such file or directory
go: error loading module requirements

所以我在这里缺少一些路径结构

4

1 回答 1

13

如果你的应用和它使用的包是同一个 go 模块的一部分,你不必添加它go.mod,你可以直接引用它。

如果它们不是同一个 go 模块的一部分,那么您可以按照以下步骤操作:

您为指令指定的路径replace必须是绝对路径或相对路径,相对于模块的 root

因此,如果mypack是模块根的同级,则可以使用:

replace mypack => ../mypack

此外,要使其正常工作,您还必须“转换”mypack为 go 模块(mypack必须包含一个go.mod文件)。go mod init mypack在其文件夹中运行。

另请查看相关问题:如何在另一个模块中使用“GOPATH”之外的模块?

于 2019-04-05T11:11:45.833 回答