GAE/Goではgoappというコマンドが準備されており、test
やbuild
、run
はこのgoapp経由で実施します。
普段使いだとそれで十分なのですが、以前紹介したgenや最近ちょっと気になるGo版power-assertのgopwt、ginkgoなどCLI経由でgoをほげほげするツールを使うときは結構困ったりします。
問題はappengineのコードがコンパイルできない部分だったりするのですが、そんなに難しくなく解決できたので覚書です。
ざっくりまとめ
やることは
- appengineのコード落とす
- GOPATH設定しつつコマンド叩く
です。
やりかた
1. appengineのコード落とす
appengine-goは普通にコードが公開されているので取得してきます。
この時落としてきたコードがGOPATHの規則に乗っ取るようsrc
パッケージ配下に入るようにします。
$ cd $GOPATH/src
$ hg clone https://code.google.com/p/appengine-go/ appengine-go/src
2. GOPATH設定しつつコマンド叩く
ここまでできれば後は簡単です。
GOPATHに落としてきたappengine-go
のパッケージを含めつつCLIを叩きます。
例えばgenであれば
$ GOPATH=$GOPATH/src/appengine-go:$GOPATH gen
の様に叩きます。
これでgoのツール類をGAE/Goでも使えるようになるはずです多分
なおgopwt
の場合$GOPATH/src
内にコードがいないと実行できないバグがあるので注意が必要です。
素晴らしいGAE/Goライフを!
2014/08/12 追記:
多分Google Cloud SDKの中にあるgorootでもOKっぽいです。
なので
$ GOPATH=/path/to/google-cloud-sdk/platform/google_appengine/goroot:$GOPATH gen
とかでもイケルと思います。
またコレはvim(with gocode)とかでappengineの補完が必要な場合でも同じです。