首页 > 文章列表 > 优化 github 上的两个 go 项目的最佳做法

优化 github 上的两个 go 项目的最佳做法

349 2024-02-06
问题内容

我正在开发两个基于 github 的 golang 项目,其中一个项目依赖于另一个项目。

假设我有项目 A (github.com/A),具体取决于项目 B (github.com/B)。所以现在我正在对项目B进行修改,推送代码,并在项目A中执行go get github.com/B,以获取项目B的最新代码。

这个过程非常耗时,而且对我来说听起来也不合适。我以为GO_PATH位置的项目B的更改文件,但似乎GO_PATH下载的项目是只读的。

有没有更好的方法来做到这一点?


正确答案


利用 golang 工作区

如果您的 golang 版本是 1.18+,您可以利用工作区功能来改善您的开发体验。

让我们使用您的示例,这样我们就有了 github.com/A,它依赖于 github.com/B

  1. 确保它们位于同一父文件夹中,假设该文件夹的名称为 workspace
  2. cdworkspace 中,然后 go mod init ./A && go work use ./B
  3. workspace 中运行 go 运行 github.com/A

结果是,在本地开发环境中,您将始终使用本地版本的 github.com/B,因此无需远程同步。

如果您使用的是以前版本的 go,我认为最好的选择是编写一些脚本来自动化此过程