【发布时间】:2021-07-01 22:49:24
【问题描述】:
我的 $GOPATH 包含 3 个位置
- /home//Documents/gotree
- /home//Documents/perforce/modules/thirdparty/golibs
- /home//Documents/perforce/modules/sggolibs/
这里的位置 1 用于一般用途,2 和 3 用于与工作相关的库,它们在一台 perforce 服务器上维护。最后两个库保持有效,因此公司中的任何人都应该使用这些确切的版本,而不是来自互联网的库的最新版本。
在其他位置有几个 go 服务器,它们都使用至少一个来自 $GOPATH 位置 2 和 3 的库。
所有这些服务器都是 2.3 年前编写的,不包含任何 go.mod 或任何包管理项。
我的问题是如何将所有这些服务器升级到最新版本的 go 以便它可以与 go 模块一起使用,并且可能是第三方库的供应商目录?
抱歉,如果我的问题太笼统了。
【问题讨论】:
-
自下而上地工作。首先将依赖库转换为 go.mod。由于它们是一个后发行版,因此将它们分叉到您需要的版本并将 go.mod 添加到此分叉版本。然后在更高级别的包中使用这个新的依赖项。
-
@colm.anseo,没有一个服务器相互依赖。这些服务器仅依赖于 ~/Documents/perforce/modules/thirdparty/golibs 和 ~/Documents/perforce/modules/sggolibs/ 中的 perforce 库,这里第三方库仅包含来自 Internet 的库,即; github.com/gorilla github.com/go-redis 我想将 go.mod 文件添加到我的服务器代码中,其中的库指向这些 $GOPATH 库中的确切版本。
标签: go go-modules govendor