goclipseとApp Engine

eclipseでGo言語書きたい。そして GAEにデプロイしたい。

普通にgoclipseの設定すると、appengine以下のパッケージを認識できずエラーになり、コード補完も効きません。
Projectの”Build Automatically” を On にしていると保存するたびに怒られます。

以下 windows でのお話しですが、LinuxとかOSXでも事情は同じだと思いますです。
Goを C:\Go に、 Google App Engine SDK for Go を C:\go-appengine にインストールされているものとします。
また、Goのワークスペースは C:\Users\masakano\go にしてあります。

これを書いている時点で SDK のバージョンは 1.9.26、Go は 1.4.2 です。

GOROOTの設定

SDK の昔のバージョンだと、C:\go-appengine\goroot に go.exe があったりして、
環境変数 GOROOT を C:\go-appengine\goroot に 設定してやればよかった、らしいんですけど、
go.exe じゃなくて goapp.exe になってるし、それをコピーして go.exe にしてもダメです。
なのでこの方法はあきらめて、おとなしく Goをインストールした場所に設定しときます。

Window → Preferences → Go → GOROOT → “C:\Go”

GOPATHの設定

まず、C:\go-appengine\goroot を コピーします。
ここでは、C:\Users\masakano\go_appengine にコピーしたものとします。

環境変数GOPATHの内容をそのまま使う的なチェックがありますが これを外し、いつものGoのワークスペースに続けて 先ほどコピーした C:\Users\masakano\go_appengine をセミコロン (Linuxの場合コロン)で区切って入力します。

Window → Preferences → Go → GOPATH → “C:\Users\masakano\go;C:\Users\masakano\go_appengine”

GOPATHは複数指定できるんですねー。
GAEのパッケージのビルドは C:\Users\masakano\go_appengine の中でやってくれます。

これで コード補完がきくようになります。

※注意
SDKの中にある goroot をコピーせずに GOPATH に加えてしまうと、その中でビルドが行われて、普通のGoツールの生成物が SDKの中に作られてしまいます。
結果として、いざテストしようと “goapp serve” とかやった時にビルドに失敗して動きません。

もしやっちゃった場合、
C:\go-appengine\goroot\pkg\windows_amd64 と
C:\go-appengine\goroot\pkg\windows_amd64_appengine
があると思うので、 “_appengine” がついていないほうを消してくださいです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です