GoでのGOPATH設定についていろいろ試行錯誤したのでメモしておきます。ベストプラクティスかどうかは分かりません。わるいGOPATHまず、今迄ずっとやっていて相当ストレスを感じていた悪いGOPATH設定を晒しておきます。Language)ディレクトリを作成し、そこをGOPATHに設定していました。partyライブラリはapp/srcの下に入ります。hello.goそうすると、以下の困ったことが起きます。ライブラリをリポジトリ単位で取ってきてしまう(回避するoptionとかあるのかも)為、巨大なライブラリ群だと不要なコードまで取得される。GAE/Goはアプリケーションディレクトリ以下のgoコードを全てコンパイルする仕様の為、ビルド時間が長くなる。getしないとビルド通らない。etc)が使われていた場合、deployできない。深刻!!よいGOPATHGOPATHを、どこでもよいですがアプリケーションディレクトリの外に設定します。hello.goアプリケーションディレクトリにはGOPATH設定する必要はありません。getはリポジトリ毎ごっそりGOPATH/srcに取得しますが、ビルド時には必要なパッケージのみ参照してくれる様になります。GOPATH内でGAE使用不可なパッケージが使用されていてもビルド可能です。※実際にはパッケージディレクトリ単位で参照している様なので、使用したいパッケージにGAE使用不可なコードが含まれている場合はビルド出来ません。この様にGOPATHを別にした場合、ローカル開発サーバー起動時にはGOPATH内のコードに対してGAE不正importチェックが働きません(SDK1.9.15現在)。ローカルではsyscallパッケージとか普通に実行出来たりします。deploy時にはチェックが働いてエラーになるので注意して下さい。GAEではない通常のGo開発用にすでにGOPATHを設定していて、GAEでの開発でもそれを共有したい場合はそのままでOKです。何らかの理由でアプリケーションディレクトリにもGOPATHを設定したい場合は、コロン(windowsはセミコロン)で区切って両方設定できます。getは先頭のGOPATHにインストールしますのでライブラリ用GOPATHを先頭に設定しましょう。その他GOPATHGOPATHが設定されない場合、goappコマンドにより自動でGOPATHが設定されます。root>/platform/google_appengine/gopath設定されているGOPATH以下のコマンドで確認できます。getしなおさないとダメそうですね(未確認)。sdkの方はバージョン上げても引き継いでくれそうです(未確認)。Firebaseでアプリ作っていきます。(2)月別アーカイブリンクはてなブログブログをはじめる週刊はてなブログはてなブログPro参加グループプログラミングテクノロジーはてなブログをはじめよう!knightsoさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。