[英]How to configure go mod to have a require version based on environment variable?
我有兩個內部項目。
項目 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 依賴於 Project2 基於上述 go.mod 文件。
當 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
文件的情況下動態完成嗎?
這可以在不修改 go.mod 文件的情況下動態完成嗎?
我不知道:您的部署過程應該包括一個go mod replace
(如此處所示),以便更新 project2 依賴項,具體取決於當前的部署環境。
如果該部署涉及 git 克隆,那么您可能會考慮內容過濾器驅動程序(此處說明)在結帳時自動執行該更改。
但如果這是通過 Go 完成的,那么go mod replace
會更好。
注意:問題 27824 ( go.mod
:使用環境變量進行替換)由於實現復雜性已於 2019 年關閉。
問題 33586 ( go.mod
: support ~
in replace statements) 仍然存在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.