【golang環境構築】とりあえずhello worldまで の続き。
goのpackage管理に何を使うか
2019年7月現在だとModulesで良さそう。
他の選択肢としてはdepがありますが、Modulesはgo1.11から導入が開始され、go1.13にてデフォルトで有効になります。
今後はModulesが標準になっていきそうなので特に理由なければModulesでいきましょう。
使い方
1. GO111MODULEをonにする
公式ではGOPATHの外でやれ、と書いていますが、$GO111MODULE=on
にしてやればGOPATH内でも大丈夫です。
ちなみにgo1.13ではデフォルトでonになります。
.zshrc
export GO111MODULE=on
2. go mod init
プロジェクトディレクトリを作り、go mod init
しましょう。
go.modが生成されます、npmでいうpackage.jsonです。
$ cd ~/workspace/go/src
$ mkdir hoge
$ cd hoge
$ go mod init hoge
3. コードを書く
$ vim hello.go
hello.go
package main
import (
"fmt"
"rsc.io/quote"
)
func main() {
fmt.Println(quote.Hello())
}
4. buildする
あとはgo build
でOK。
それだけで自動的にモジュールのダウンロードもやってくれます。
また、ここでgo.sumというファイルが生成されます、npmでいうpackage-lock.jsonです。
$ go build
$ ./hoge
こんにちは世界。