Go Modulesを試してみた。(書きかけ)
Go Modulesを試してみた。
パッと見だと自分の頭ではうまく理解できなかったので、手を動かして理解しようとした。これは自分用に後で見返すための備忘録的な役割を担っている。
また自分は普段はあまりGoを使っていないので、見当違いのことを書いている可能性もある。そこはご了承いただきたい。
基本的に下記のドキュメントを参照している
まだ、自分用のメモとして残したい故に書いているので、この文章は追記前提で書いている。
試したときの環境
macでgo 1.12を使っている
go version go version go1.12 darwin/amd64
go mod initで初期化
GOPATH
の外側で作業用のディレクトリを作成する
ドキュメントと違っていても動くには動くよう。
特に問題なし?
mkdir hello cd hello go mod init hello
これで初期化完了。
ちなみにドキュメントでは下記のように書いていた。
おそらくmoduleというものは下記のように書いたほうが良いのかもしれない。
あまりココらへんをちゃんと理解していないので、勉強する必要ありそう。
とりあえず、上のコードでも動くようだ。
mkdir -p /tmp/scratchpad/hello cd /tmp/scratchpad/hello
go m
コードを書く。
gin
を試してみたかったこともあり、quick start
してみた。
package main import "github.com/gin-gonic/gin" func main() { r := gin.Default() r.GET("/ping", func(c *gin.Context) { c.JSON(200, gin.H{ "message": "pong", }) }) r.Run() // listen and serve on 0.0.0.0:8080 }
buildした段階でインストールが必要なパッケージはダウンロードされる。
go.mod
が同じディレクトリ上にあるかでmodulesは判断しているようだ。
go build
buildされたバイナリはそのまま実行できるよう。
go modulesを使った場合、インストールしたパッケージはどこにダウンロードされる?
$GOPATH配下の下記のディレクトリに入っていた。
$GOPATH/pkg/mod/{ここに入る}