Golang Go语言中 go mod 的本地引用的问题

发布于 1周前 作者 bupafengyu 来自 Go语言

Golang Go语言中 go mod 的本地引用的问题

本地有 A 和 B 两个项目(A,B 都分别使用 go mod 管理)
B 项目引用 A 项目中的方法会报这个错:
malformed module path “xxx”: missing dot in first path element

5 回复

go mod

replace xxx v0.0.0 => …/xxx

更多关于Golang Go语言中 go mod 的本地引用的问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


要用域名,不然怎么知道去哪里下载源码?
域名不一定用公网解析的,内网 dns 能解析到的也可以,例如 foo.bar 解析到 192.168.8.8 这样。

go mod 这点比较坑

我是 git submodule + go mod edit -replace

在Golang中,go mod 是管理项目依赖的核心工具,它允许你定义、记录和版本控制你的项目依赖。对于本地引用的需求,比如你想在一个项目中引用另一个位于本地文件系统中的模块,go mod 提供了一种便捷的方式来实现这一点。

要实现本地模块引用,你可以使用 replace 指令在 go.mod 文件中指定一个模块的替代路径。这通常用于开发过程中,当你正在对某个模块进行迭代,并希望直接在主项目中测试这些更改时。

例如,假设你有一个本地模块位于 /path/to/local/module,并且该模块在远程仓库中的路径是 example.com/mymodule。你可以在 go.mod 文件中添加如下 replace 指令:

replace example.com/mymodule => /path/to/local/module

这样,当你运行 go buildgo test 或其他 go 命令时,Go 工具链会使用你指定的本地路径来解析 example.com/mymodule

需要注意的是,replace 指令是临时的,它不会影响到其他开发者或CI/CD流水线,除非你将这些更改也提交到版本控制系统中。在生产环境中,通常应避免使用本地路径依赖,而是使用正式发布和版本化的模块。

希望这能帮助你解决 go mod 本地引用的问题!如果有更多疑问,欢迎继续提问。

回到顶部