我只想使用一个使用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
所以这里我遗漏了一些路径结构
发布于 2019-04-05 19:11:46
如果你的应用和它使用的包是同一个go模块的一部分,你不需要把它添加到go.mod
,你可以直接引用它。
如果它们不是同一个go模块的一部分,则可以执行以下步骤:
为replace
指令指定的路径必须是绝对路径或相对路径,即相对于模块的根的。
因此,如果mypack
是模块根目录的同级,则可以使用以下代码:
replace mypack => ../mypack
此外,为了实现这一点,您还必须将mypack
“转换”为go模块(mypack
必须包含go.mod
文件)。在其文件夹中运行go mod init mypack
。
还可以查看相关问题:How to use a module that is outside of "GOPATH" in another module?
https://stackoverflow.com/questions/55533971
复制相似问题