登录
首页 >  Golang >  Go问答

最便捷的本地 go 依赖项管理方法是什么?

来源:stackoverflow

时间:2024-03-26 22:57:36 462浏览 收藏

在 Go 1.18 版本中,可以通过创建工作区文件来实现本地依赖项管理。该文件包含 replace 指令,用于指定本地依赖项的位置。例如,go.work 文件可以指定项目 my-project 使用本地实用程序存储库 my-util,从而避免在提交时操作 go.mod 文件。

问题内容

我想知道如何与本地图书馆合作。假设我想并行开发两个 vgo 项目,一个 my-project 和一个由 my-project 使用的 my-util 项目。当然 my-util 可在远程存储库中使用,但由于将此处的所有更改提交到 master 分支只是为了使它们在 my-project 中可用(和可测试)是不可行的,所以我想使用本地版本改为 my-util。类似于 Java 中旧的 mvn clean install

我认为这必须通过 replace 指令来实现。但这意味着我需要以我不想稍后提交的方式操作 my-project 中的 go.mod 。除了在提交之前删除所有 replace 指令并在之后重新添加它们之外,还有什么方法可以解决此问题吗?

是否有类似 go_local.mod 的内容,其中包含 replace 指令,并且可以放在 .gitignore 上?或者某种我可以定义替换的环境变量?或者至少有一个 IDE 允许在提交时忽略 go.mod 中的 go.mod 指令?

或者我采取了错误的方法,在我的情况下,是否有更方便的 replace 方法替代方案?


解决方案


看起来go终于想出了更好的解决方案。在 1.18 中,可以创建一个可以应用 replace 指令的工作区文件:https://go.googlesource.com/proposal/+/master/design/45713-workspace.md

所以像这样的 go.work 应该可以工作:

go 1.18

use (
    ./my-project // location of the go.mod of my project
)

replace github.com/NotX/my-util => ./my-util // location of go.mod

因此,从 go.work 文件位置开始,命令 go test ./my-project/... 现在应该使用本地实用程序存储库。

1.18 尚未发布,因此可能会发生一些变化。

今天关于《最便捷的本地 go 依赖项管理方法是什么?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>