Go Module

Go 從 1.13 開始支援 Go Module,可以在 GOPATH 以外的地方建立 go project 並進行套件管理。一直覺得 source code 只能放在 GOPATH 裡超阿雜…

建立 project

GOPATH 以外的地方建立一個 directory,並且在其中執行 go mod init

1
2
3
$ mkdir project
$ cd project
$ go mod init github.com/cjwind/project

會產生 go.mod 檔案,它會記錄 Go module 與使用的 Go 版本:

1
2
3
module github.com/cjwind/project

go 1.15

接下來在這個 directory 裡進行開發跟 build 就都一樣,重點是現在 source code 不用非得放在 GOPATH 裡啦~

套件管理

go get 安裝 package 後,會發現在 go.mod 多了一行 require [package] [version],就表示目前使用的 package 及其 version。

另外可能會出現 require [package] [version] // indirect,這表示是我們使用的 package 所需要的 package。

也可以用 go get [package]@[version] 來指定特定的 package version。

Ref