leftovers...

about grails groovy

第4回 g* ワークショップ「はじめてみよう!Grailsプラグイン」初級編

第4回 g* ワークショップ おつかれさまでした。
今回はGrails徹底入門での9章の内容範囲で話をさせていただきました。土壇場で内容変更をしたのと、あいかわらず時間を考えないで内容をつくったので、駆け足のライブコーディングになってしまい申し訳ないです。

今回のハンズオン用のサンプルアプリを移動中に新幹線で作ってるときに、ついうっかりミス操作をしてしまい、同じ名称で新規プラグイン作成コマンドを実行。
解りやすくまとめると。

grails create-app sample001 

そしてサンプルのGrailsアプリを結構がんばって作る。
車掌に声をかけられて空白の時間......続きを開始.....

grails create-plugin sample001

え!?上書きされた!最初はかなりあせった...
まあ、こんなミスもあるさと、ちょうど良かったので内容がどうなってるか検証してみると、しっかりプラグインの新規作成時に複製されるファイルは全て上書きされてました。運良く上書きされたファイルは全く編集していなかったので無問題!
今まで何度もGrailsアプリはGrailsプラグインにできます!と言い続けてきたのですが、実際にはGrailsの旧バージョンのバグとかで、view関連が見えなかったりコントローラがまれに正常に動かなかったりと苦労してきたので、最近は全然試していませんでしたが、良い機会なので試してみようと、プラグインになってしまったサンプルアプリをプラグインとしてパッケージ!そして、別のGrailsアプリを新規に作ってインストール、そして起動してみました。

grails create-app test001
cd test001
grails install-plugin ../sample001/grails-sample001-0.1.zip
grails run-app

起動は正常!しかしブラウザでみるとエラー!ぅぅぅ...。プラグインに入っている内容はプラグイン用に調整していないので当然です。なのでプラグイン用にパスの定義等の変更を少々!(スライドを参考に!)そして再度起動!正常に動作しました!というわけで、今回のライブコーディングのネタを若干変更しました。

実際にプラグインライブコーディングでやった内容は、

スライドとライブコーディングに使ったもろもろはコッソリ置いておきます。
これらで遊ぶにはプラグインsvnリポジトリが必要です。
用意する物

  • grails-1.1.1
  • 自分で勝手に使えるhttp経由のSVNサーバ

※各プラグインをリリースするには、
~/.grails/settings.groovy 又はBuildConfig.groovyにプラグインSVNリポジトリの設定が必要です。
例えばSVNリポジトリhttp://127.0.0.1/gp の場合

grails.plugin.repos.discovery.local="http://127.0.0.1/gp" 
grails.plugin.repos.distribution.local="http://127.0.0.1/gp"

プラグインのリストを見る

grails list-plugins -repository=local

リリースコマンド

grails release-plugin -repository=local 

まとめると、GrailsでのWebアプリを完全にプラグイン分けで開発したら、メインのプロジェクトに必要なのは、application.properties、プラグインのレポジトリを指定するためのgrails-app/conf/BuildConfig.groovy、そしてgrails-app/confの中にある、DataSource.groovy、Config.groovy等が管理できてれば良い!?ってことですね:-)

前回の合同の時のソースも置いておきます。 http://grails.jp/sample/beanbuilder-test.zip