一からPlay2 frameworkを使えるようになるまで環境を整える
旦那のMac(OS X 10.9...)でちょっと開発したいなーと思ったら、環境構築までにとっても時間がかかったのでおぼえがきです。。
手順というより、「自分のPCで開発しているPlay2プロジェクトを別の場所でも開発するのに必要なことチェックリスト」という感じです。
チェックリスト
- JDKインストール / 無料Javaソフトウェアをダウンロード
- Eclipseインストール / Eclipse Downloads | The Eclipse Foundation
- EclipseにScala IDEプラグインをインストール / Download the 4.7 Release of the Scala IDE for Eclipse - Scala IDE for Eclipse
- Play2 framework(activator)をインストール/ Play Framework - Build Modern & Scalable Web Apps with Java and Scala
- MySQLインストール
- Gitインストール
- 自分のプロジェクトをgit clone
- コマンドライン上でactivator eclipse
- Eclipseに自分のプロジェクトをインポート
- activator runしてブラウザで確認
苦労したこと
前準備(JDK, Eclipse, Scala IDEインストール)編
MacがOS X 10.9だったこともあるのかもしれないけれど、Javaのバージョンがわけわからなくなっていて苦労しました。
2016/9/27現在では、最新EclipseはNeonでした。Javaのバージョンは1.8以上を要求されます。Eclipse Installerでは1.7以上を要求されています。
OSのJavaバージョンは1.6のようだったので、Oracleのサイトから1.8をインストールしました。
結果。ブラウザでは「お使いのJavaは最新です!」と出るのにも関わらず、Eclipse Installerからは1.7 or greaterにしろやというメッセージが出る。JAVA_HOMEやPATHの設定か?と.bash_profileなどを修正してみるも同じメッセージが出る。
Version 1.6.0_65 of the JVM is not suitable for this product. Version 1.7 or greater is required.
ちなみに、ターミナル(iTerm2を使用)ではJavaのバージョンは1.8でした。。
というわけで、iTerm2から
open Eclipse\ Installer.app/
をしてみます。お、、さっきと、表示が、ちが…
The JVM shared library "/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/bin/../jre/lib/server/libjvm.dylib" does not contain the JNI_CreateJavaVM.symbol.
ほほーう。
結局、Java 1.7もインストールして、JAVA_HOMEとPATHを1.7用に書き換えて、iTerm2からEclipse Installerを開いて、どうにか動きました。
Eclipseのダウンロードは時間かかりすぎで、ここで1日が終わりました。
Version 1.6.0_79 of the JVM is not suitable for this product. Version 1.8 or greater is required.
泣いていいですか。
いろいろ調べていたら、以下のような記事を見つけました。
MacにAptana Studio 3 (3.6.1)をInstallしようとしたら、JNI_CreateJavaVM.symbolがないというAlertが出て立ち上がらない問題の解決策メモ - Qiita
参考にして、"./Eclipse.app/Contents/Eclipse/eclipse.ini"の中の"-vm"以下をJava 1.8に指定しました。
指定するときは、java_homeを利用して、以下のように指定しました。
…その他の設定… -vm `/usr/libexec/java_home -v 1.8` …その他の設定…
参考URL:OSXでJavaのバージョンを切り替える - Qiita
これで無事Eclipseも開いた…!
日本語化はいいです。面倒でいつもしてません…
本番(Play2, gitインストール)
そしてPlay2のTypesafe Activatorをインストールしようとしてまたはまりました。
Typesafe Activatorは、zipファイルでかる〜く落とせるんですが、
以下のエラーが発生しました。
./activator: /usr/bin/env: bad interpreter: Operation not permitted
いろいろ試してみても、どうにも直らない。。
ぐぐってみたら、どうやらzipの展開に問題がありそうだとわかりました。
ダブルクリックで展開すると、どうやら"The Unarchiver" 「The Unarchiver」をMac App Storeででzipが展開されていて、その際に改行コードなどが書き換えられていたらしい。。
参考URL:bash - /usr/bin/env bad interpreter - Stack Overflow
上記のstack overflowでは、3rd partyソフトウェアを使っていると…みたいな書き方になっていますが、もしかしたら最新版のThe Unarchiverだったら設定できるかもしれません。このMacのThe Unarchiverは3.1で、そのような設定はないように見えましたが、2016/9/27の最新版は3.11.1でした。(最新版は検証してません)
iTerm2で、unzipコマンドで改めてTypesafe Activatorのzipを展開して、そのactivatorを実行したら…
成功した><。。
ちなみにMySQLとGitはなぜか入っていたMacportsでインストールしました。楽ちん。
Macports自体は、数年前に入れられていたようで、selfupdateもupdate outdatedも鬼のように時間かかったけど、まあそんなもんですよねー。たぶん数年前にインストールしたの私だろうし…
- 2016/10/3 追記 -
Macportsでインストールすると、/opt/local/etc/mysql56/ 内にある macports-default.cnf という設定ファイルに、以下の設定がありました。
[mysqld] # skip-networking so multple mysql server ports can be loaded # without each competing for port 3306. skip-networking
読むとわかるように、MySQLサーバーを複数立ち上げるためにポート番号3306に固定しない…という設定です。このあと、mysqlクライアントから以下のコマンドを行うと、MySQLサーバのポートが指定されていないのがわかります。
mysql> show variables like 'port'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | port | 0 | +---------------+-------+ 1 row in set (0.00 sec)
今回はそれでは困るので、上記の macports-default.cnf の設定はコメントアウトして、my.cnfにポート番号3306の設定を追加しました。
[mysqld] port=3306
その後MySQL Serverを再起動すると、MySQLクライアントからのポート番号の確認もできました。
mysql> show variables like 'port'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | port | 3306 | +---------------+-------+ 1 row in set (0.00 sec)
- 2016/10/3 追記ここまで -
MySQLはインストール後、サーバーの自動起動設定(参考URL:macportsで入れたMySQL 5.6の自動起動設定をやってみた - babydaemons’ blog)と、必要なユーザーの作成&パスワードの設定、データベースの作成までやった。