Go misc
2014-06-23
Golang初学者のGolangに関する雑多なメモ。
Godep
GodepはRubyで言うところのBundlerみたいなもので、 依存関係の定義と解決を行ってくれる。 godepはgo getを利用してインストールできる。 GodepというファイルにJSON形式で依存関係を記述し(≒Gemfile)、 godep getで依存ライブラリをインストールする(≒bundle install)。 例えばGoのプロジェクトflynn/discoverdのGodepsを利用してみる。
$ go get github.com/tools/godep
$ cd $GOPATH/src/github.com/flynn/discoverd
$ cat Godep
{
"ImportPath": "github.com/flynn/discoverd",
"GoVersion": "go1.2.1",
"Deps": [
{
"ImportPath": "github.com/coreos/go-etcd/etcd",
"Comment": "v0.2.0-rc1-98-gd88f477",
"Rev": "d88f477a542c781eb9ad18ce82b3a0b9b6e2d07e"
},
{
"ImportPath": "github.com/flynn/go-flynn/attempt",
"Rev": "3743ca1e0e1cff877b906dd56983f57699b2cc7d"
},
{
"ImportPath": "github.com/flynn/rpcplus",
"Rev": "05df3d30b6e55f5b440c1a78e2f83cb822bc0d76"
}
]
}
$ godep get
godep getにより、Depsの項目に記述されたレポジトリが取得される。 godep goというコマンドを使うと、依存関係を解決した状態で続くコマンドを実行してくれる。 内部では一時的にGOPATHをどこかに変更することでこれを実現しているらしい。