首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >go modules - replace不起作用-没有版本的替换模块必须是目录路径(根目录或以

go modules - replace不起作用-没有版本的替换模块必须是目录路径(根目录或以
EN

Stack Overflow用户
提问于 2019-04-05 19:02:27
回答 1查看 15.2K关注 0票数 9

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

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

和go.mod

模块goweb

代码语言:javascript
运行
复制
go 1.12

require mypack v0.0.0

replace mypack => ./src/mypack

go.mod抱怨道:

代码语言:javascript
运行
复制
replacement module without version must be directory path (rooted or starting with .

去找-u。/...

代码语言:javascript
运行
复制
go: parsing src/mypack/go.mod: open <local path>/goweb/src/mypack/go.mod: no such file or directory
go: error loading module requirements

所以这里我遗漏了一些路径结构

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-05 19:11:46

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

如果它们不是同一个go模块的一部分,则可以执行以下步骤:

replace指令指定的路径必须是绝对路径或相对路径,即相对于模块的根的

因此,如果mypack是模块根目录的同级,则可以使用以下代码:

代码语言:javascript
运行
复制
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?

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55533971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档