Groovy on Grails をインストールして使ってみた
会社でGroovyを使っているので、勉強していたらGrailsというものがあり、
GrailsならWebアプリケーションを簡単に作れるっぽいのでインストールしてみた。
インストール
Grails
Grailsは以下からインストールできる。
The Grails Framework
Posh-GVM (POwerSHell Groovy enVironment Manager) というGroovy の環境ツールがあるので、
せっかくなのでPosh-GVM を使ってインストールしてみた。
まずはPosh-GVM のインストール。
管理者権限のPowerShell で以下を実行。
- (new-object Net.WebClient).DownloadString('https://raw.githubusercontent.com/flofreud/posh-gvm/master/GetPoshGvm.ps1') | iex
- Import-Module posh-gvm
- gvm help
以下の画面が表示されればPosh-GVM のインストールは完了。
途中、PowerShell の実行ポリシーに引っかかった場合、以下をPowerShell 上で実行すれば解決した。
Set-ExecutionPolicy RemoteSigned
それではPosh-GVM を使用してGrails をインストールしてみよう。
といっても、以下コマンドをPowerShell で実行するだけだ。
gvm install grails
GGTS
Groovy/Grails Tool Suite というEclipse のGroovy/Grails 版があるのでインストールしてみた。
といっても、以下からダウンロードしてインストールするだけだ。
Groovy/Grails Tool Suite™ (GGTS)
インストールが終わってGGTS を開いてみるとなにかあやしい予感が…
おそるおそる「Preferences」→「Groovy」→「Grails」を見てみると…
GGTS に含まれてるやないか!!Grails !!
せっかくインストールしたのに…!!
しかもバージョンが違ってる…
しょうがないのでPosh-GVM を使用してGrails をバージョンして入れ直し。
gvm install grails 2.4.4
Grails コマンドを使用して「Hello,World!」
せっかく入れたGrails だけをつかって「Hello,World!」アプリケーションを作る。
PowerShell で以下のコマンドを順に実行する。
- grails create-app HelloWorld
- cd .\HelloWorld
- grails create-controller HelloWorld
- エディタで .\grails-app\controllers\helloworld\HelloWorldController.groovy を開き、編集する
package helloworld class HelloWorldController { def index() { render "Hello,World!" } }
5. grails run-app
うん、なんか大丈夫そうだな。
アプリケーションが起動したというメッセージが出た。
GGTS を使用して「Hello,World!」
先ほど作ったプロジェクトを「Grails Project」としてインポートし、
あとはRUNするだけでOK!
これでうまくいくと思ったらエラーがバンバン出た…エラーが止まらない!
java.lang.reflect.InvocationTargetException at sun.reflect.GeneratedMethodAccessor58.invoke(Unknown Source) … Caused by: java.lang.IllegalArgumentException: Can not copy a non-root Method at java.lang.reflect.Method.copy(Method.java:151) ... 390 more
さっそく調べてみると、ここに書いてあった。
Incompatible JVM in GGTS (Eclipse) and JAVA 1.8 - Stack Overflow
JDKのバージョンが対応していないとのこと。
JDK:1.8.0_60 をインストールして実行してみると成功した。