More Related Content
More from Nobuhiro Sue (19)
Jjug 20140430 gradle_intro
- 2. 2
自己紹介
須江 信洋(すえ のぶひろ)
Twitter: @nobusue
https://www.facebook.com/nobuhiro.sue
約10年ほどJavaEE関連の仕事をしてます
2013年10月よりフリーランス(個人事業主)
最近興味を持っているもの
Vert.x / Storm / Camel / Elasticsearch
Vagrant / Docker / Ansible / Serverspec
もちろんGroovy / Gradle / Grails
Gradle本
(執筆中)
- 3. 3
JGGUGって?
Japan Grails/Groovy User Group
2009年発足
Grails/GroovyなどのGroovyエコシステム(G*)
に関するコミュニティ
2006年から活動していたGrailsコミュニティが前身
毎月第3金曜日にG*ワークショップZを開催
参加型(ハンズオンなど)
告知・申し込みはこちら
http://jggug.doorkeeper.jp/
http://www.jggug.org/
- 4. 導入編 目次
Gradle概要
Gradleとは?
Ant/Mavenとの差別化ポイント
Gradleの普及状況
Gradleの利用方法
インストール
Hello Gradle
参考情報
4
- 6. Ant/Mavenの課題を解決する次世代ビルドツール
AntとMavenの「いいとこどり」
HibernateやSpringなど、多くのプロジェクトで採用
標準化と柔軟性の両立
Mavenライクな標準ディレクトリ構造を使い、そこから外れる
部分は自由にカスタマイズ可能
依存ライブラリはMavenリポジトリでもローカルJARでも好き
なように定義できる
マルチプロジェクトへの対応が容易
ビルドスクリプトはGroovyで記述
DSLによるシンプルかつ可読性の高いビルド定義
条件分岐や繰り返しなど、任意の処理をGroovyで実行可能
6
http://gradle.org/
- 14. Gradle DSL
Gradleが独自に定義する文法
build.gradleで記述する”apply”や
”repositories”、”dependencies”など
Groovyの標準の文法とは異なる
舞台裏
apply / repositories / dependenciesはメソッド
単に引数のカッコを省略しているだけ(Groovyの
省略記法を利用)
メソッドのレシーバはGradleが提供するオブジェクト
14
- 15. スクリプトの柔軟性: 条件分岐
15
task "OsDependTask" << {
def os = System.getProperty("os.name")
if(os.contains("Windows")) {
//Windows用の処理
}
else if(os.contains("Mac OS")) {
//Mac OS用の処理
}
else {
//Linux/Unix用の処理
}
}
Javaのクラスが
直接使える
ifやswitchで
分岐が書ける
- 16. 規約に合わないプロジェクトへの対応
16
├── build
│ └── classes
│ └── main
├── build.gradle
└── src
├── main
│ ├── java
│ └── webapp
│ ├── index.html
│ └── WEB-INF
│ └── classes
└── test
└── java
規約: src/main/java
⇒build/classes/main
src/main/webapp/WEB-INF/classes
以下にクラスを生成したい
- 27. Gradleインストール
前提
JDK1.5以上 (“java –version”で確認)
現時点では1.8に未対応なので1.7がおすすめ
GVM利用
curl -s get.gvmtool.net | bash
gvm install gradle
詳細は http://gvmtool.net/ 参照
(Windowsの場合はCygwinが必要)
ZIPを展開
http://www.gradle.org/downloads
適当なディレクトリに展開 ($GRADLE_HOME)
$GRADLE_HOME/bin にパスを通しておく
27
- 30. Hello Gradle解説
30
task hello << {
println 'Hello Gradle world!'
}
タスクの定義
タスクにクロージャを追加
※ leftShift()の省略記法
Groovyのprintln =
JavaのSystem.out.println()
- 33. Gradle関連情報
Gradle 日本語ドキュメント
http://gradle.monochromeroad.com/docs/index.html
サンプルコード
gradle-1.12-all.zipの”samples/”以下
Gradleプロジェクトのソースコード
gradle-1.12-src.zip
https://github.com/gradle/gradle
GVM:the Groovy enVironment Manager
http://gvmtool.net/
Groovy/Grails/Gradle/Vert.x/SpringBootなどに対応
33