My Note

自己理解のためのブログ

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

参考

qiita.com