我只想使用 go 模块使用本地包。
我在文件夹 goweb 中有这些文件:
和 go.mod
模块goweb
go 1.12
require mypack v0.0.0
replace mypack => ./src/mypack
Run Code Online (Sandbox Code Playgroud)
但go.mod
抱怨:
replacement module without version must be directory path (rooted or starting with .
Run Code Online (Sandbox Code Playgroud)
去获取 -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
Run Code Online (Sandbox Code Playgroud)
所以我在这里缺少一些路径结构
如果您的应用程序和它使用的包是同一个 go 模块的一部分,则不必将其添加到go.mod
,您只需引用它即可。
如果它们不是同一个 go 模块的一部分,那么您可以按照以下步骤操作:
您为replace
指令指定的路径必须是绝对路径或相对路径,相对于模块的 root。
所以如果mypack
是你模块根的兄弟,你可以使用这个:
replace mypack => ../mypack
Run Code Online (Sandbox Code Playgroud)
此外,要使其正常工作,您还必须“转换”mypack
为 go 模块(mypack
必须包含一个go.mod
文件)。go mod init mypack
在其文件夹中运行。
另请查看相关问题:如何在另一个模块中使用“GOPATH”之外的模块?
归档时间: |
|
查看次数: |
13076 次 |
最近记录: |