多模組工作區入門
本教學介紹了 Go 中多模組工作區的基本概念。使用多模組工作區,您可以告訴 Go 命令您同時在多個模組中撰寫程式碼,並輕鬆建置和執行這些模組中的程式碼。
在本教學中,您將在共用的多模組工作區中建立兩個模組,在這些模組之間進行修改,並在建置時觀察這些更改的結果。
先決條件
- 安裝 Go 1.18 或更高版本
- 程式碼編輯工具:任何您習慣的文字編輯器皆可
- 命令終端機:Go 在 Linux/Mac 的終端機或 Windows 的 PowerShell/cmd 上皆能正常運作
本教學需要 Go 1.18 或更高版本。請確認您已從 go.dev/dl 安裝正確版本。
建立程式碼模組
-
開啟命令提示字元並切換至主目錄:
Linux/Mac:
Windows:
後續命令提示將以
$顯示,所有命令均相容 Windows。 -
建立
workspace工作目錄: -
初始化模組:
本範例將建立新的
hello模組並相依於golang.org/x/example模組:透過
go get加入相依套件:建立
hello.go內容如下:執行程式:
建立工作區
此步驟將建立 go.work 檔案來指定模組的工作區配置。
初始化工作區
在 workspace 目錄執行:
此命令會建立類似以下內容的 go.work 檔案:
語法說明:
go 1.18:指定 Go 版本要求use ./hello:指定hello目錄為主模組
在工作區執行程式
於 workspace 目錄執行:
Go 命令會將工作區中所有模組視為主模組。這允許我們在模組外仍可參考模組中的套件。若在非模組或工作區外執行 go run 會導致錯誤。
下載並修改 golang.org/x/example/hello 模組
-
複製 Git 倉庫:
-
將模組加入工作區:
更新後的
go.work: -
新增函數功能:
於
workspace/example/hello/reverse目錄建立int.go: -
修改
hello.go使用新函數:
執行工作區程式
工作區機制說明:
- 使用
go.work解析模組路徑,無需設定replace指令 - 同一工作區內的模組可即時互相參考修改
後續發行步驟
若需正式發行模組:
- 為
golang.org/x/example/hello模組建立v0.1.0標籤 - 詳見模組發行流程文件
- 更新
hello/go.mod的版本需求:
工作區進階指令
Go 提供多個工作區管理子命令:
go work use [-r] [dir]:加入或移除use目錄,-r參數會遞迴檢查子目錄go work edit:編輯go.work檔案(類似go mod edit)go work sync:將工作區相依套件同步至各模組
詳細資訊請參閱 Go 模組參考文件 - 工作區