Groovy on Grails をインストールして使ってみた

会社でGroovyを使っているので、勉強していたらGrailsというものがあり、
GrailsならWebアプリケーションを簡単に作れるっぽいのでインストールしてみた。

環境

インストール

Grails

Grailsは以下からインストールできる。
The Grails Framework

Posh-GVM (POwerSHell Groovy enVironment Manager) というGroovy の環境ツールがあるので、
せっかくなのでPosh-GVM を使ってインストールしてみた。

まずはPosh-GVM のインストール。
管理者権限のPowerShell で以下を実行。

  1. (new-object Net.WebClient).DownloadString('https://raw.githubusercontent.com/flofreud/posh-gvm/master/GetPoshGvm.ps1') | iex
  2. Import-Module posh-gvm
  3. gvm help

以下の画面が表示されればPosh-GVM のインストールは完了。
f:id:AHA_oretama:20151224195204j:plain

途中、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」を見てみると…

f:id:AHA_oretama:20151224210304j:plain

GGTS に含まれてるやないか!!Grails !!
せっかくインストールしたのに…!!

しかもバージョンが違ってる…
しょうがないのでPosh-GVM を使用してGrails をバージョンして入れ直し。

gvm install grails 2.4.4

Grails コマンドを使用して「Hello,World!」

せっかく入れたGrails だけをつかって「Hello,World!」アプリケーションを作る。
PowerShell で以下のコマンドを順に実行する。

  1. grails create-app HelloWorld
  2. cd .\HelloWorld
  3. grails create-controller HelloWorld
  4. エディタで .\grails-app\controllers\helloworld\HelloWorldController.groovy を開き、編集する
package helloworld

class HelloWorldController {

    def index() {
        render "Hello,World!"
    }
}

  5. grails run-app

うん、なんか大丈夫そうだな。
アプリケーションが起動したというメッセージが出た。
f:id:AHA_oretama:20151224225808j:plain

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 をインストールして実行してみると成功した。

f:id:AHA_oretama:20151224225123j:plain

まとめ

Groovy on Grails の良さまでは今日はたどり着けなかった。
ただGrails の環境はこれでできたので、次からはGrails をいろいろ触ってみたい。