Go1.11から導入されたModulesを試す
Goバージョン1.11からモジュール対応モードが導入された。そこで理解するために一度使ってみる。
$ mkdir go-mod-test
$ cd go-mod-test
$ cat hello.go
package main import ( "fmt" "rsc.io/quote" ) func main() { fmt.Println(quote.Hello()) }
$ export GO111MODULE=on
$ go mod init hello
go: creating new go.mod: module hello
$ cat go.mod
module example.com/hoge/hello go 1.12
$ go run hello.go
go: extracting rsc.io/quote v1.5.2 go: extracting rsc.io/sampler v1.3.0 こんにちは世界。
→ コンパイル&実行するときにモジュールをダウンロードしてくれた。
→ 以前であれば、go get
でダウンロードする必要があった。
$ ls ~/go/pkg/mod
cache golang.org rsc.io
→ $GOPATH/pkg/mod
にダウンロードされた。
$ cat go.mod
module example.com/hoge/hello go 1.12 require rsc.io/quote v1.5.2 // indirect
require rsc.io/quote v1.5.2 // indirect
が追加された。
$ go mod graph
hello rsc.io/quote@v1.5.2 rsc.io/quote@v1.5.2 rsc.io/sampler@v1.3.0 rsc.io/sampler@v1.3.0 golang.org/x/text@v0.0.0-20170915032832-14c0d48ead0c
$ ls
go.mod go.sum hello.go