Hatena::ブログ(Diary)

leftovers... このページをアンテナに追加 RSSフィード

2015-03-31

Grails 3.0.0 リリース!!

Grails 3.0.0 がリリースされました!!!!


これで、一段落!2.3時代の頃からGrails 2.4のリリース群にもあわせつつ"Road to 3.0"を開始、それから約1年半ほどコア部分からの見直しが始まり、確か当初はビルドシステムGradleにするとかの話くらいだった気が、そしてspring-bootの出現とマイクロサービス時代に向かって、最終的にはspring-bootベースになって登場しました。Grails 2.4.xからGrails自身に依存せずスタンドアロンでGORMが使用できるように、続いてGSPもスタンドアロンで使用できるようになりました。他にも3.0へ向けての実装変更も多く行われました。

2.4.xでの更新で、ビルドシステムを変更するための基盤が完成して、今回リリースされたGrails 3.0では、その上にGradleでのビルド、コアをspring-boot上に組換え、以前のバージョンから多くの互換性を残して、新たなフレームワークと生まれ変わったと思います。

今回のバージョンからは、以前と変わり静的コンパイルでキレッキレッな動作をするGroovy 2.4.xを使用して、spring-bootの良いところをふんだんに使用して、今までのGrailsの良さもとことん活かした内容となっています。


Graeme Rocher氏によるリリース報告と今後についても合わせてお読みください。

http://grails.io/post/115110650393/grails-3-0-released-and-the-road-ahead

要約すると、

リリースしたぜ!忙しかったぜ!

まだ決まって無いけど今後どこかのFoundationに入るぜ!

でも、まだ一部の会社スポンサー交渉中だとか。

あと、Graemeさん。5月まで休むそうだ。帰っては来る感じの書き方してるけど、、、あやしいなー。


過去バージョンからの更新

過去バージョンからの更新は、ちょっと大変ですが、補佐するプラグインリリースされていますので、公式ドキュメントアップグレード方法と合わせて使用してみると良いかと思います。

あと、必要な知識、というより覚えて絶対に損しないspring-bootのドキュメントも合わせて読むと良いでしょう!

https://grails.org/plugin/migrate2-grails3

http://grails.github.io/grails-doc/3.0.x/guide/upgrading.html

http://docs.spring.io/spring-boot/docs/1.2.2.RELEASE/reference/html/


プラグインに関して

Grails 2.x系のプラグイン更新しないと使えません。(ハズ)

Grails3に対応したプラグイン達はbintrayにあります。これから増えていくと思います。

https://bintray.com/grails/plugins

Grails2時代のプラグイン代用としては、自分でGrails3用にマイグレートするか、

cssjsリソース関連はwebjarsを使う手もあります。asset-pipelineがクラスパスのMETA-INFを読み込むので、それ以降のパスを指定すればOK。

あとSpring関連をパックしたプラグイン代用spring-bootの機能でどうにかなる物も多いので、あえてプラグインにする必要はないかもしれません。ただし今までのプラグインと比べると若干手間になる物もあります。



そして、"What's new in Grails 3.0?"の意訳最新版です。

コアフィーチャ

Groovy 2.4.x

Grails 3.0 は、多くの新機能機能向上を含むGroovy 2.4をバンドルしています。

Groovy 2.4についての情報コチラから。

Spring 4.1.x と Spring Boot 1.2.x

Grails 3.0は、多くの新機能機能向上を含む Spring 4.1 をバンドルしています。さらに、Grails 3.0では Tomcat,Jetty,Undertowコンテナを組み込んだ起動可能Jar提供しているSpring Boot 上に構築されています。

Gradle ビルドシステム

Grails 3.0から古いGantベースビルドシステムを廃止して、新たにGradleプラグインエコシステムと密接に統合したGradleベースビルドに変更されました。

See the new section on the new Gradle build for more information.

詳細はコマンドドキュメントGradleのセクションを参照してください。

アプリケーションプロファイル

Graild 3.0では、新たな profile repository による、アプリケーションプロファイルという概念をサポートします。

プロファイルは、アプリケーション構造コマンドセット、プラグイン情報などを要約します。

例えば、"web"プロファイルでは、サーブレットコンテナデプロイ可能なWebアプリケーションを構築可能にします。将来的に様々な環境に対応したプロファイル提供します。

詳細はドキュメントプロファイルを参照してください。


Traitをベースに再デザインされたAPI

Grails APIパブリックAPIgrails. パッケージ以下に集約されました。プライベートインターナルAPIで変更される可能性がある物は、 org.grails. パッケージ以下にあります。

コアAPIは、Groovy Traitsベースとして再構築されました。

詳細はドキュメントCore Traitを参照してください。


Webフィーチャ

今までのGrailsでは、コントローラ・アクションのインターセプトとしてフィルター存在しました。

Grails 3.0からフィルターは廃止され、新たに、Interceptor APIに変更されました。以下はInterceptorの簡単な例です。

class MyInterceptor {
  boolean before() { true }
  boolean after() { true }
  void afterView() {
    // no-op
  }
}

詳しくはドキュメントInterceptor APIを参照してください。


開発環境フィーチャ

新たなシェルコード生成API

Gantからの移行。Grails 3.0では、Gradleと密接に統合された新たなインタラクティブコマンドシェルGradle相互動作するスクリプト記述APIでのコード生成機能提供します。

新たなシェルは、アプリケーションプロファイルのコンセプトと密に統合され、各プロファイルプロファイル特有コマンド定義可能です。

Grailsの以前のバージョンと同様に、各プラグインGradleを実行またコード生成やプロジェクト自動タスクなどの新たなシェルコマンド定義可能です。

詳しくは、ドキュメントカスタムスクリプト生成を参照してください。


強化されたIDE統合

Gradleビルド可能なGrails 3.0では、IntelliJコミュニティ版やGGTS Gradleツールサポートを利用することで、Grails専用ツール無しでGrailsプロジェクトインポート出来ます。

Grails 3.0プラグインは、単純なJARファイルで発行できるので、IDEGrailsに特化した機能が必要無い事になります。

アプリケーションメインクラス

新たなGrails 3.0プロジェクトにはトラディショナルな static void main をもつ Application クラス が有ります。これはGrails 3.0は、IntelliJやGGTSなどのIDEで起動・デバッグを単純にApplicationクラスを実行することでGrailsアプリケーションが実行できる事を意味します。

Grails 3.0 でのテストも、コマンドラインを使用することなく、IDEで直接起動出来ます。(インテグレーションファンクショナルテストでもです!)


テストフィーチャ

インテグレーションとGebファンクショナルテスト

Grails 3.0では、 create-functional-test を使用したSpock/Gebファンクショナルテストを組み込んでいます。

ファンクショナルテストSpring Bootをベースとしたテスト実行の仕組みを使用して、全ファンクショナルテスト実行用にアプリケーションを1回起動します。テストIDEから実行できてコマンドラインは必要ありません。

Gradleテスト実行

Grails 3.0 からは、Gradleビルドされるようになった事で、並列実行でのテスト実行定義がが柔軟で簡単になりました。


公式ドキュメントが結構更新されています。Grails3で迷ったら該当場所をサクッとみると良いでしょう!

http://grails.github.io/grails-doc/3.0.x/


Grails 3.0.1 の公式リリースノートはこちら。

https://github.com/grails/grails-core/releases/tag/v3.0.1

JIRA https://jira.grails.org/secure/ReleaseNote.jspa?projectId=10020&version=14206

ダウンロード https://github.com/grails/grails-core/releases/tag/v3.0.1

ドキュメント http://grails.github.io/grails-doc/3.0.x/



お知らせ!

Grails3の話をもっと聞きたい!Grails3を使ったハンズオンに参加したい!というかた!

4/11開催のJJUG CCC 2015 Springにて、

Grails 第3章 進化したSpring-bootベースフレームワーク」との内容で話します!

http://www.java-users.jp/?page_id=1663

@nobeansさんの「Java開発の強力な相棒として今すぐ使えるGroovy」も続けて聞けますよ!これ行かないとダメでしょう!


そして、日本Grails/Groovyユーザーグループの定例イベント「G*ワークショップZ」

4/17の「G*なWeb API」で、 @yamkazu氏による。

Grails 3でWeb APIを簡単に作ろう!」

https://jggug.doorkeeper.jp/events/22473

@yamadamasakiさんによる「REAL Objects : 動的なエンタプライズAPIアーキテクチャをどう構築するか」も必見!


さらに、岐阜県多治見市のnewcast inc.開発ルームにて、自分がいるときは、いつでもGrails3雑談会を不定期で開催しております。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証