go get 與 go mod 的差異與關係
在 Go 的套件管理演進中,go get 和 go mod 扮演不同的角色:
go get:負責下載並取得依賴原始碼。go mod:負責管理專案依賴與版本。
在現代 Go(Modules 模式)下,兩者是搭配使用的:go get 幫你把套件抓回來,go mod 則負責把版本與依賴關係記錄好。
1. go get:下載與安裝依賴(Getter)
在 Go Modules 出現之前(GOPATH 時代),go get 是主要的依賴獲取工具。
-
功能
- 從遠端倉庫(如 GitHub)下載套件原始碼。
- 下載後安裝到本地環境,可執行檔會安裝到
$GOPATH/bin。
-
存放位置(舊模式)
- 套件原始碼:
$GOPATH/src - 可執行檔:
$GOPATH/bin
- 套件原始碼:
-
限制與問題
- 缺乏版本控制:預設抓取遠端最新版本(HEAD),無法精準鎖定版本。
- 更新風險高:上游若出現破壞性更新,很難回滾,容易進入「依賴地獄」。