管理 Go 模組中的多個入口點
當 Go 專案包含多個入口點(例如多個 main方法)時,建構每個入口點點可能會帶來與依賴性相關的挑戰
問題
建構依賴於不同依賴項的不同入口點時, go build 指令可能會無意中修改go.mod 文件,刪除它所確定的依賴項對於目前入口點來說是不必要的。這可能會導致在建置後續入口點時出現依賴衝突。
解決方案:子模組
此問題的解決方案在於使用子模組。透過在與入口點關聯的每個 cmd 目錄中建立單獨的 go.mod 文件,我們可以隔離每個入口點的依賴關係。
建立子模組
在每個cmd目錄下,建立一個go.mod file:
module github.com/your-org/your-project/cmd/entry_point_name
在根go.mod檔中,使用replace指令將依賴項從入口點指向本地submodule:
replace github.com/your-org/your-project/cmd/entry_point_name => ./cmd/entry_point_name
建構子模組
要不修改go.mod檔案的情況下建立特定入口點,請使用以下指令指令:
go build -mod=readonly -o entry_point_name cmd/entry_point_name/main.go
好處
子模組讓您:
附加說明
對於更複雜的用例,您可能需要在 Go 工具鏈中配置其他設定。請參閱 Go 文件和問題追蹤器以獲取進一步指導。
以上是建構多入口Go專案時如何有效管理依賴關係?的詳細內容。更多資訊請關注PHP中文網其他相關文章!