G*ワークショップZ Mar 2013へ行ってきました
金曜の夜、Gradleがテーマの勉強会&懇親会へ行ってきました。
JGGUGさんのイベントに参加するのは、2年ぶり3回目です。
メモを少し取ったので、せっかくなんで上げておきます。
エンタープライズGradle: 林さん
ユーザガイド
- Gradle User Guide http://gradle.monochromeroad.com/docs/userguide/userguide.html
上の長大なユーザガイドを和訳されている方とのこと。ありがとうございます><
docbookで書かれてますということで、そのビルドスクリプトの紹介がありました。
gradlew :doc:userGuideHtml でドキュメントが生成されます。
https://github.com/gradle/gradle/blob/master/subprojects/docs/docs.gradle
依存関係の管理
次のようなお話。
第48章 依存関係の管理 http://gradle.monochromeroad.com/docs/userguide/dependency_management.html
Gradleは、依存関係の解決エンジンを最近書き換えたのだそうです。キャッシュ機構の信頼性がエンタープライズ的に十分でない、とGradleを書いている人が思ったからだそうです(よくわからない)。詳しいことは、上のページの「48.9.1. Gradleにおける依存関係キャッシュの重要な機能」を見てね、とのことです。
プロジェクトでGradleを導入しようとしたらおかしなことになった件: bikisukeさん
(タイトルうろ覚え。すみません)
bikisukeさんがいろいろ苦労されたお話。お疲れさまでした。
大変そう。。。なんとなく、Gradleを使いたい層とPleiadisを使いたい層は、かぶらないような気がしました^^;
そういえば、本筋ではないですが、Drools(http://www.jboss.org/drools/)の存在を知りました。
ハンズオン: nobusueさん
(以下はすべて資料にもある話です)
gvm
gvmはbashのシェルスクリプトとして書かれたツールです。
gvm list gradleで、利用可能なGradleのバージョンを一覧できます。
gvm use gradle 1.4 とかすれば、バージョンを指定できます。
homeフォルダの下に.gvmというフォルダが作られて、そこに入っていくそうです。
タスクの指定
キャメルケースでタスク名を指定できます。helloWorldタスクは、hWでオッケー(知らなかった。手動で実行する時にはベンリそう)
gradle tasksで、定義されているタスク一覧が表示されます。
ロギングなど
オプション-S -dをつけると詳細な実行ログを出せます。
--dry-run (-m)で、実際の実行はせずに、タスクの実行順序を確認できます。
初期化スクリプト
初期化スクリプトを配置することで、ビルドの開始前に実行できます。
この順に探しにいくそうです。
- ~/.gradle/init.gradle
- ~/.gradle/init.d/*.gradle
- $GRADLE_HOME/init.d/*.gradle
--init-script(-I)で指定することもできるようです。
高速化
gradle --daemon タスク名
で、Gradle用のプロセスが常駐するようになり、速くなります。gradleservと同じ仕組み、とおっしゃっていました。
--stopで、プロセスの利用を停止できます。
warプラグイン、Jettyプラグイン
たくさんタスクが追加されます。Jettyプラグインは、組み込みサーバの起動もできます。
gradleのjettyプラグインは、Servlet3.0未対応だそうですが。
これだけは覚えて帰ってね!の便利メソッド
- file()
- files()
- fileTree()
- logger
- 標準出力への出力をすべてQUIETにリダイレクトしてくれます
詳細はnobusueさんの資料をご覧ください。
ビルドスクリプト
このあたりの構文のお話。