プラグイン

各種機能、開発支援ツール等様々な機能を提供してくれるのが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章を執筆。