1

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

我认为这必须通过replace指令来实现。但这意味着我需要以一种我以后不想提交的方式来操纵我go.mod的 in 。除了在提交之前删除我的所有指令并在之后重新添加它们my-project之外,有没有办法解决这个问题?replace

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

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

4

1 回答 1

0

看起来 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 尚未发布,因此可能会有所改变。

于 2022-01-17T15:27:59.427 回答