簡體   English   中英

如何配置 go mod 以獲得基於環境變量的要求版本?

[英]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會更好。


注意:問題 27824go.mod :使用環境變量進行替換)由於實現復雜性已於 2019 年關閉。
問題 33586 ( go.mod : support ~ in replace statements) 仍然存在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM