2013年5月9日木曜日

Windows環境のIDEでVM(CentOS)上のPlay!をデバッグ実行する

Windows上からステップ実行とかしたいよね!
macはこの点全部ネイティブで、意識せずに開発できるからいいよね!!
VM上でX入れてIntelliJ IDEA入れて動かそうと思ったけど、やっぱりメモリやCPU無駄遣いだし重いよね!レスポンスの悪さは開発効率の悪さ!服装の乱れは心の乱れ!!








はい








なんて言うか、妙なノリだったけどまあいいや。
やった事って言っても簡単な事しかしてないんだけど。
IDEAでやろうと思ったんだけど、まず簡単そうなEclipseでやってみたよ!


Windows上で必要なモノ


  • Scalaのインストール
  • Eclipseのインストール
  • Eclipse Scala plugin(SDK)のインストール
  • 準備が整ったVM



VM上で必要なモノ


  • Scalaのインストール
  • Playのインストール
  • VMで共有フォルダの設定
  • iptablesに9999の開放を追加

手順

VM上でやる

  1. cd /{VMの共有フォルダ}/
  2. play new hogehoge してplayアプリを作る
  3. cd hogehoge
  4. play
  5. eclipse with-source=true
  6. 終わったらCTRL+Dで一旦閉じておく
  7. cp -r {playのインストールフォルダ}/play-2.X.X/ ~/{VMの共有フォルダ}/    <- li="">
  8. sudo vi /etc/sysconfig/iptables
  9. -A INPUT -m state --state NEW -m tcp -p tcp --dport 9999 -j ACCEPT
  10. ↑を追加し保存。
  11. sudo /etc/init.d/iptables restart
  12. play debug run

Windows上でやる

  1. http://scala-ide.org/ でSDKダウンロード
  2. 解凍して、Eclipseのフォルダに大体ぶちこむ。Eclipse.exeとかはいらない。フォルダだけでいい
  3. Eclipse起動
  4. Importで共有フォルダのhogehogeを読み込む
  5. ルートのhogehogeのフォルダアイコンの右上にScalaプロジェクトを示すちっちゃい「S」マークが出てればいい。或いはapp/controllers/Application.scalaのページアイコンの中にS
  6. この時点ではまだエラーが100以上出ている。VMの方でsbtが用意してくれたライブラリのディレクトリがVM上の物になっているから。これを手動で書き換える。
  7. プロジェクトのフォルダの.classpathを適当にエディタで開き、大量の
    path="/{playのインストールフォルダ}/repositoryなんちゃら~/" を
    path="C:/{共有フォルダ}/play-2.X.X/repositoryなんちゃら~/" に置き換える。
  8. 保存して、Eclipseのプロジェクトをリフレッシュ。多分これで全部消える。
  9. app/controllers/Application.scalaのdef indexのトコにブレークポイント。
  10. プロジェクトhogehoge右クリックなり上のメニューの実行>デバッグ構成(Debug Configurationだっけ?)
  11. Remote Java Applicationのトコで新規追加、ホストはVMのアドレス、ポートは9999
  12. デバッグを実行してみる
  13. 繋がったら、ブラウザとかでhttp://VMのアドレス:9000/を開く
  14. ブレークポイントで止まれば勝つる

要は、ライブラリを共有フォルダにコピっただけ。(ドヤ顔するほどのことでもない)

なので、そもそもライブラリ群をVMでインストールする際に、共有フォルダに保存するようにしてWindows上でもそこを読みに行けば良い。


で、playのIDE用ファイル吐き出しの際には常にVMの中でのディレクトリ構成に基いて作ってしまうので、ラップしたバッチファイルとかで毎度生成する毎に置き換えとかを自動化しちゃえばWindows上でわざわざ毎回書き換えなくていいので、そこまで終わってやっと完成かな…


上の手順だけだと、うっかりplay eclipseとかplay ideaとかやっただけで破損するし、依存ファイルが増える度にどのみち再生成したりするのでだるい。


結論


Windows上のIDEでコーディング、実行はVMや他のLinuxサーバー、ってな時は依存ライブラリ&Playは共有フォルダに実体を置く。VMの共有フォルダじゃなければシンボリックリンクでもいけるかな?

0 件のコメント:

コメントを投稿