go modules - 替换不起作用 - 没有版本的替换模块必须是目录路径(根目录或以
go modules - replace does not work - replacement module without version must be directory path (rooted or starting with
我只想使用 go modules 的本地包。
我在文件夹 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 .
go get -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
所以我在这里遗漏了一些路径结构
如果你的应用和它使用的包是同一个go模块的一部分,你可以不用添加到go.mod
,直接引用即可。
如果它们不是同一个 go 模块的一部分,那么您可以按照以下步骤操作:
您为 replace
指令指定的路径必须是绝对路径或相对路径,相对于模块的根目录。
所以如果 mypack
是你模块根的同级,你可以使用这个:
replace mypack => ../mypack
此外,要使其工作,您还必须 "convert" mypack
进入 go 模块(mypack
必须包含一个 go.mod
文件)。 运行 go mod init mypack
在其文件夹中。
另请查看相关问题:
我只想使用 go modules 的本地包。
我在文件夹 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 .
go get -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
所以我在这里遗漏了一些路径结构
如果你的应用和它使用的包是同一个go模块的一部分,你可以不用添加到go.mod
,直接引用即可。
如果它们不是同一个 go 模块的一部分,那么您可以按照以下步骤操作:
您为 replace
指令指定的路径必须是绝对路径或相对路径,相对于模块的根目录。
所以如果 mypack
是你模块根的同级,你可以使用这个:
replace mypack => ../mypack
此外,要使其工作,您还必须 "convert" mypack
进入 go 模块(mypack
必须包含一个 go.mod
文件)。 运行 go mod init mypack
在其文件夹中。
另请查看相关问题: