プラグイン
各種機能、開発支援ツール等様々な機能を提供してくれるのがGrailsプラグインだ。Grailsコア本体もプラグインで構成されている。
JavaScriptのライブラリ、セキュリティ対応、クラウド支援ツール等、現在約350件のプラグインがセントラルリポジトリ(Grails公式が管理しているリポジトリ)に存在する。Grailsは、便利な機能を提供するだけではなく、独自でプラグインの開発も行える。
そして、プラグインを活用する事によって、Grails本体の各機能と同じくらいにわかりやすい機能の提供や、チーム開発での効率化、再利用性の高さも提供してくれる。
プラグインは公式サイトのプラグインページより検索ができる。
プラグインのインストールコマンド
セントラルリポジトリに存在するプラグインのインストール
% grails install-plugin acegi
zipパッケージを指定してインストール
% grails install-plugin /path/to/plugins/grails-view-template-0.1.zip
プラグイン開発
プラグイン開発方法は、Grailsでの通常のWeb開発とほとんど同じである。本稿では詳しい開発方法はスペースの関係で割愛させていただくが、プロジェクトの作成方法とパッケージ方法だけ説明しておきたい。
プラグインのプロジェクト生成はcreate-pluginコマンドで行う。プラグインプロジェクトの内容はほとんど通常のGrailsプロジェクトと同じで、プラグインディスクリプタファイルの有無だけになる。プラグインプロジェクトを生成したら、通常のGrailsでの開発と同じように開発を行い、package-pluginコマンドでプラグインパッケージになるzipファイルを生成する。
プラグインプロジェクト生成コマンド
% grails create-plugin mytags
プラグインパッケージコマンド
% grails package-plugin
本稿では割愛させていただくが、Grailsプラグインは、セントラルプラグインリポジトリと同じように、独自のプラグインリポジトリで管理することが可能だ。
GrailsでWeb開発をする際に、機能分けなどを行いプラグイン分けをして、チーム専用のプラグインリポジトリを活用する事によって、再利用可能にモジュール化した開発を行う事ができる。
次期バージョンからプラグインリポジトリのMaven対応や、将来的にプラグインのOSGi対応の計画等があるので、GrailsでWeb開発する際は、プラグインを活用する事をおすすめする。
Web開発を支援する多くの機能
本稿では紹介しきれなかった他の機能を簡単に紹介する。
- Apache Ivyをベースに構築された依存性管理DSL
- リクエストフィルタ機能
- URLマッピングDSLとREST対応
- コンテントネゴシエーションDSL
- Webフロー。Spring Web FlowのDSL実装
- テスト駆動開発(TDD)支援環境。Spockプラグインを使う事でBDDも可能
- URLエンコード・デコードを行うCodec
- Ajax機能をラップした便利なタグライブラリ
* * *
本稿の内容では、GrailsでのWeb開発の導入部分を簡単に述べた。 JavaでのWeb開発に必要な内容が、ほとんど揃っており、それらの技術をシームレスに活用できることが分かったと思う。また、わかりやすいルールを基にDSLで記述しながらコードを書くという事は、見やすさ、わかりやすさを提供してくれる。
Grailsは、常に最先端のWeb開発で要求される機能をプラグインでわかりやすくDSLなどで提供してくれる。だが、その反面、不安定さも目立ったりする。ただ、欧米でコミュニティの活動が活発なので解決も早い。
本稿執筆の時点での最新版は1.2.2であり、この1.2系のGrailsは過去のリリースに比べ、スループットも良くなり、かなり安定している。そして近々さらに安定した次期バージョン1.3も控えており、さらなる安定と機能向上が期待される。
オールインワンで、エンタープライズなアジャイルWeb開発ができるGrailsを是非活用してみてはどうだろうか。
執筆者紹介
山本 剛(YAMAMOTO Tsuyoshi)
- ニューキャスト
出版・印刷関連のシステム設計開発等に従事するテクニカルDTPアーキテクト。日本Grails/Groovyユーザーグループ名古屋支部長。2006年よりGrailsでのドキュメント翻訳、その後、Grails公式のAcegiプラグインを開発。書籍『Grails徹底入門』(翔泳社発行)の9、10、11章を執筆。