Grails 1.2-M3 に更新!
Grails 1.2-M3がリリースされました。
- チェンジログ: http://jira.codehaus.org/browse/GRAILS?report=com.atlassian.jira.plugin.system.project:changelog-panel
- ダウンロード: http://grails.org/Download .
- ドキュメント: http://grails.org/doc/1.2.x
前回のGrails-1.2M2の更新に引き続き安定版1.2へ向けてのリリースです。
今回の更新で追加された機能は、
- 依存解決DSL
MavenレポジトリからのJar依存解決用DSLが追加されました。
実装にはApache Ivyを使用しています。Maven、Ivyを使わずに、依存関係を明示的にコントロールできます。
grails.project.dependency.resolution = { inherits "global" // inherit Grails' default dependencies repositories { grailsHome() mavenCentral() } dependencies { runtime 'com.mysql:mysql-connector-java:5.1.5' }}
- GSPパフォーマンスの超最適化
レンダリングレイヤーのGSPとSitemeshのスループットが2,3倍に!
- マルチ組込コンテナサポート、デフォルトはTomcatに!に追加機能。
Grails Plugin: Apache Tomcat plugin
コマンドからのリモートデプロイが実装されました。
grails tomcat deploy grails tomcat undeploy
- Webフローをプラグイン化(外部化)
今まで基本機能に含まれていたWebフロー機能(SpringのWebFlow)は、今後はプラグインとして提供されます。
- Zipのみのプラグインリリース
GrailsプラグインをZipファイルだけ、(セントラル)プラグインリポジトリにリリースできるようになりました。
SVN以外でプラグインバージョン管理している場合に有効。
grails release-plugin --zipOnly
- formatNumberとformatDate タグの改良
http://grails.org/doc/1.2.x/ref/Tags/formatNumber.html
http://grails.org/doc/1.2.x/ref/Tags/formatDate.html
JGGUGサマーイベント2009 「G* on GAE/J 挑戦編」
もちろん来年も夏にやるから2009ってついてるわけで!?
まあ、とにかく参加した皆様おつかれさまでした。
参加できなかった皆様にも、サイトが準備されています。
http://groups.google.co.jp/group/jggug-summer-2009
そして、ネタに使われて実況もしていた。Twitterもあります。
http://twitter.com/jggugsummer2009
そして自分の発表内容 「G* on GAE/J 挑戦編」はこんな感じです。
おしながき
- 第壱幕 Grailsでアプリ作ってみよう(1.2M2)
- 第弐幕 GrailsでGAE/J
- 第参幕 Gaelyk(GroovyでGAE/J)
- ソース:http://grails.jp/sample/jggugv3.zip
詳しくは以下のプレゼン資料を参照してください。
SlideShareでみれます
http://www.slideshare.net/tyama/g-on-gaej
PDFダウンロード
http://grails.jp/sample/gr_on_gaej.pdf
このほぼ同じ内容とか、コマンドのコピペとか、コードの断片とか、各フレームワークの設定方法とかは、以下を参照してください。
http://groups.google.co.jp/group/jggug-summer-2009/web/g-on-gae-j
資料を作るときのトラブルとか、バグとの戦いとか、本番の時間の押しとかは、あたりまえに予測しておくべきですね ;-)。いろいろ補足説明は後日書きます。
あと、懇親会でTDDとかの話いろいろ勉強になりました。ありがとうございました。
で、次回はいつにしましょうか!?
第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
起動は正常!しかしブラウザでみるとエラー!ぅぅぅ...。プラグインに入っている内容はプラグイン用に調整していないので当然です。なのでプラグイン用にパスの定義等の変更を少々!(スライドを参考に!)そして再度起動!正常に動作しました!というわけで、今回のライブコーディングのネタを若干変更しました。
実際にプラグインライブコーディングでやった内容は、
- 準備していたGrailsアプリを起動どうさ確認。
- 準備していたGrailsアプリのディレクトリにめがけて grails create-plugin sample001
- プラグイン化された既存Grailsアプリをプラグインとしてパッケージ grails package-plugin
- 新規にGrailsアプリ作成 grails create-app t00001
- 作成したGrailsアプリにプラグインをインストール grails install-plugin ../sample001/grails-sample001-0.1.zip
- 動作確認 → エラー対象箇所の調整
- さらにプラグインから一部の機能を切り離しプラグイン化
- そして作成したGrailsアプリにプラグインをインストール
- 動作確認
- ローカルのレポジトリに2個のプラグインをリリース!
- そしてapplication.propertiesに必要なプラグインの情報を元に自動プラグイン解決のデモ
スライドとライブコーディングに使ったもろもろはコッソリ置いておきます。
これらで遊ぶにはプラグイン用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
- プラグインになる前 http://grails.jp/sample/sample001-before.zip
- プラグインにした後 http://grails.jp/sample/sample001-plugin.zip
- 一部切り離してプラグインに。 http://grails.jp/sample/mini-wiki.zip
- プラグインをapplication.properties定義した別アプリ http://grails.jp/sample/t00001.zip
- スライド http://www.slideshare.net/tyama/4-g-grails
まとめると、GrailsでのWebアプリを完全にプラグイン分けで開発したら、メインのプロジェクトに必要なのは、application.properties、プラグインのレポジトリを指定するためのgrails-app/conf/BuildConfig.groovy、そしてgrails-app/confの中にある、DataSource.groovy、Config.groovy等が管理できてれば良い!?ってことですね:-)
前回の合同の時のソースも置いておきます。 http://grails.jp/sample/beanbuilder-test.zip