如何配置go mod以具有基于环境变量的 require 版本?

我有两个内部项目。


项目 1 - 文件go.mod


go github.com/company/project1

 

go 1.16


require github.com/company/project2 v1.1.0 // indirect

项目 2 - 文件go.mod


go github.com/company/project2

 

go 1.16

Project1 依赖于基于上述 go.mod 文件的 Project2。


当 Project2 在多个环境中移动时,它需要依赖于不同版本的 Project1。

例如,基于环境变量:


如果环境 = 负载


Project1 depends on 1.1.0-<ENVIRONMENT> version of Project2

如果环境 = 测试


Project1 depends on 1.1.0-<ENVIRONMENT>.<DATE> version of Project2

这可以动态完成而不每次都修改文件吗?go.mod


料青山看我应如是
浏览 159回答 1
1回答

holdtom

这可以动态完成而不每次都修改go.mod文件吗?不是我所知道的:您的部署过程应该包括一个go mod替换(如此处所示),以便更新project2依赖项,具体取决于当前的部署环境。如果该部署涉及 git 克隆,则可以考虑使用内容筛选器驱动程序(如此处所示)在结账时自动执行该更改。但是,如果这是通过Go完成的,那么a更好。go mod replace注意:由于实施的复杂性,问题 27824(:使用环境变量进行替换)已于 2019 年关闭。问题 33586(:替换语句中的支持)仍处于打开状态。go.modgo.mod~
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go