17
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

IntelliJ IDEA14でGAE SDK for Goの構築〜実行まで

Posted at

はじめに

今回、次の内容で開発環境を構築する.

  • 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/gobrew 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"の
レスポンスが返される.

以上.

17
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?