2 回答
TA贡献1811条经验 获得超6个赞
我已经尝试了以下结果。
将 ~/projects/mylibrary 添加到 GOPATH
这不是 GOPATH 的工作方式。在 GOPATH 样式下构建源代码必须位于 GOPATH/src 之下。您似乎正在使用模块,因此摆弄 GOPATH 是无用的,因为它被忽略了。
运行 go install for mylibrary
那基本上没有任何作用。无论是在 GOPATH 还是在 Go 模块风格的构建中。让 Go 编译器在安装包和可执行文件时找到源代码是 100% 没用的。对于 Go 模块风格的构建,即使包安装实际上也无用。
你应该做的是遵循“如何编写 Go 代码”。
对于您的设置,您必须告诉module example.com/myapplication在哪里可以找到module example.com/mylibrary. 这是通过replacemyapplications go.mod 中的指令完成的:
replace example.com/mylibrary => <file-path-to-source-folder>
死的简单。
带走:
您可以使用 Modules 或 GOPATH,但不要尝试混合使用它们。
go install(仅)对安装可执行文件有用。如果模块 A 想要使用模块 B 的本地版本:通过 A 的 go.mod 中的替换指令告诉模块 A。
TA贡献1858条经验 获得超8个赞
在如何在另一个模块中使用“GOPATH”之外的模块?,它指出 我可以在本地文件系统上完全在 VCS 之外工作吗?.
似乎有点不雅,但看起来修复我的示例应用程序的官方方法是修改myapplication/go.mod以对库模块名称进行查找和替换,将其替换为相对文件系统路径。
因此,要使此示例正常工作,myapplication/go.mod将变为:
module example.com/myapplication
go 1.14
replace example.com/mylibrary => ../mylibrary
- 2 回答
- 0 关注
- 169 浏览
添加回答
举报
