はじめに
今回、次の内容で開発環境を構築する.
- Mac OS X 10.9.5
- Java 1.7.0_51
- IntelliJ IDEA 14
- Go 1.4
- Google Cloud SDK 0.9.42
- IntelliJ IDEA google-go-langurage plugin 0.9.16-alpha.9
構築は以下の手順で進める.
IntelliJ IDEA14をダウンロード&インストール
下記ページからIntelliJ IDEA14をダウンロードしインストールする.
Download link
今回使用するpluginの都合上, IntelliJ IDEAのバージョンは14である必要がある.
Go SDKをインストール
今回はbrewからインストール
$ brew install go
インストールが完了したらバージョンを確認しておく.
$ go version
# 今回はGo 1.4であることを確認
Google Cloud SDKをインストール
GAE SDK for Goをインストールする前にGoogle Cloud SDKをインストールする.
Google Cloud SDKの参考ページ
Google Cloud SDKをインストールするフォルダ構成を事前に用意しておく.
(今回は~/Documents/dev/google_cloud
とした)
下記コマンドを実行しGoogle Cloud SDKをインストールする.
$ curl https://sdk.cloud.google.com | bash
インストールする場所を問われるので事前に用意したフォルダパスを指定.
Directory to extract under(~):
$ ~/Documents/dev/google_cloud # 事前に用意したパスを指定
Google Cloud SDKの品質向上について問われるのでYes/Noを指定.
Do you want to help improve the Google Cloud SDK (Y/n)?
$ Y # 品質向上に寄与
rcファイルのパスを指定.
Enter path to an rc file to update, or leave blank to use [~]
$ <blank> # 空白Enterでデフォルトの~/.bash_profileを指定
環境変数PATH
の更新を問われるのでYesを指定.
Modify profile to update your $PATH? (Y/n)? Y
$ Y # $PATHを更新する
bashの補完機能について有効にするためYを指定.
Modify profile to enable bash completion? (Y/n)?
$ Y # bashの補完機能は有効にする
bashリロードのためにターミナルを再起動する.
ターミナルを再起動したら下記コマンドでGoogle Cloud SDKのバージョンを確認.
$ gcloud --version
# 今回は次の結果が得られた
Google Cloud SDK 0.9.42
bq 2.0.18
bq-nix 2.0.18
compute 2015.01.06
core 2015.01.08
core-nix 2014.10.20
dns 2015.01.06
gcutil 1.16.5
gcutil-nix 1.16.5
gsutil 4.7
gsutil-nix 4.6
sql 2015.01.06
GAE SDK for Goをインストール
Google Cloud SDKのインストール完了後に次のコマンドを発行するとGAE SDK for Goをインストールできる.
$ gcloud components update gae-go
インストール確認にYesを指定.
Do you want to continue
$ Yes
環境はgoogle-cloud-sdk/platform/
にインストールされている.
go lang pluginをインストール
下記ページからIntelliJ IDEA用のgo lang plugin(google-go-language.jar)をダウンロード.
GitHub - go-lang-plugin-org
(今回は0.9.16-alpha.9を使用)
IntelliJ IDEA14を起動し, Welcome画面で[Configure]>[Plugins]>[Install plugin from disk]から,
ダウンロードしたgoogle-go-language.jarを指定し, pulginをインストールする.
IntelliJ IDEA14を再起動してインストールを完了する.
Go App Engine プロジェクトを作成する
IntelliJ IDEA14のWelcome画面から[Create New Project]>[Go App Engine]を選択.
プロジェクト名は全て小文字で(今回は"gotest"とした), ローケーションは任意.
プロジェクト画面の起動を確認し[Project Structure]>[Platform Settings]>[SDKs]を表示.
"Go SDK"と"Go App Engine"が登録されていることを確認する.
もし追加されていない場合は下記を実施する.
Go SDKを設定
[Project Structure]>[Platform Settings]>[SDKs]を表示.
[+]を押して[Go SDK]を選択.
ファイルエクスプローラでGo SDKのパス/usr/local/Cellar/go/1.4/libexec
を指定する.
NOTE
/usr/local/Cellar/go
はbrew install go
でインストールされるデフォルトパス
パスはlibexec
まで指定する必要がある.
NOTE
ファイルエクスプローラでパスを直接指定するにはcommand+Shift+G
を入力する
Go App Engineを設定
[Project Structure]>[Platform Settings]>[SDKs]を表示.
[+]を押して[Go App Engine SDK]を選択.
ファイルエクスプローラでGAE SDK for Goのパス〜省略〜google-cloud-sdk/platform/google_appengine
を指定する.
これでSDKの設定は完了. 次にProjectに使用するSDKを設定する.
[Project Structure]>[Project Settings]>[Project]を表示.
[Project SDK]で先ほど作成した[Go App Engine]を指定する.
GOPATHとGOROOTを設定
Goの環境変数$GOPATH
と$GOROOT
を設定しておく.
メニューの[IntelliJ IDEA]>[Tools]>[Google Go]を表示.
GOROOTにはGo SDKのパス/usr/local/Cellar/go/1.4/libexec
を指定.
GO AppEngine ROOTにはGAE SDK for Goのパス〜google-cloud-sdk/platform/google_appengine
を指定.
GOPATHには今回作成したGO Projectのルートディレクトリ〜省略〜/gotest
を指定.
ここまででGAE SDK for Goの実行環境は一通り整った.
コーディング
Projectのツリービューにあるsrc
フォルダを右クリックし
[New]>[Package]を選択し名前main
でソースフォルダを作成しておく.
次に作成したmain
フォルダ上で右クリックし[New]>[Go AppEngine]>[Go File]を選択.
main.go
を作成し下記コードをコピーペーストする.
#IDE上エラーに見えるケースがあるが実行はできる
package main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, World")
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
実行
メニュー[Run]>[Edit Configurations]から[+]>[Go Local AppEngine Server]を選択.
デフォルト設定値のまま[OK]を押下.
再びメニューの[Run]から先ほど追加した実行プロファイルを選択し実行する.
実行すると下記のようなログがコンソールに表示されるのがわかる.
これでローカルサーバとしてGAEをgoで実行できている状態となる.
Starting module "default" running at: http://localhost:8080
この状態でhttp://localhost:8080
にブラウザからアクセスすると"Hello World"の
レスポンスが返される.
以上.