SlideShare a Scribd company logo
1 of 21
Download to read offline
G*ワークショップZ Oct 2014 
Gradleイントロダクション 
最新動向(~2.1) 
2014.10.24 
須江信洋(@nobusue) 
http://nobusue.hatenablog.com/ 
https://www.facebook.com/nobuhiro.sue
自己紹介 
} 㡲Ụ㻌ಙὒ䠄䛩䛘㻌䛾䜆䜂䜝䠅 
} Twitter: @nobusue 
} https://www.facebook.com/nobuhiro.sue 
} ⣙10ᖺ䜋䛹JavaEE㛵㐃䛾௙஦䜢䛧䛶䜎䛧䛯 
} 2013ᖺ10᭶䜘䜚䝣䝸䞊䝷䞁䝇(ಶே஦ᴗ୺) 
} ᭱㏆䛾䛚௙஦ 
㻞 
} IoT(Internet of Things)䛾䝃䞊䝡䝇ᇶ┙ᵓ⠏ 
} AWS / Cloudera Manager / CDH 
} Spark / Kafka / OpenTSDB / MongoDB / RStudio 
} Groovy / Gradle / SBT / Maven / Jenkins / Vagrant
Gradleイントロダクション 
3
Gradleとは? 
} Groovy䝧䞊䝇䛾䝡䝹䝗䝒䞊䝹 
} 䜽䝻䝇䝥䝷䝑䝖䝣䜷䞊䝮㻌(JavaVMୖ䛷ືస) 
} Groovy䝇䜽䝸䝥䝖䛷䝡䝹䝗䜢グ㏙(no more XML) 
} 䝡䝹䝗グ㏙䜢⡆₩䛻䛩䜛DSL䜢ᥦ౪ 
} つ⣙䛸ᰂ㌾ᛶ䛾㐺ษ䛺䝖䝺䞊䝗䜸䝣 
} Ant:㻌ᰂ㌾䛰䛜䚸⮬⏤䛩䛞䛶㠀ຠ⋡ⓗ 
} Maven: つ⣙䛻䜘䜛ຠ⋡໬䚸䛧䛛䛧⼥㏻䛜ຠ䛛䛺䛔 
} Gradle: つ⣙䛿䛒䜛䛜䜹䝇䝍䝬䜲䝈ྍ⬟ 
} ᪤Ꮡ㈨⏘䛾᭷ຠά⏝ 
} Ant䝍䝇䜽䜔䝡䝹䝗ᐃ⩏䜢䛭䛾䜎䜎෌฼⏝ 
} Maven/Ivy䝸䝫䝆䝖䝸䜢฼⏝ྍ⬟ 
} 䝡䝹䝗䝇䜽䝸䝥䝖ෆ䛷Java䝷䜲䝤䝷䝸䜢┤᥋฼⏝ྍ⬟ 
4 
http://gradle.org/
Gradleのビルドスクリプト(例) 
apply plugin: 'java' 
repositories { 
jcenter() 
} 
dependencies { 
compile ‘org.slf4j:slf4j-api:1.7.5’ 
testCompile ‘junit:junit:4.11’ 
} 
5 
Java䝥䝷䜾䜲䞁䜢㐺⏝ 
౫ᏑᛶゎỴ䛻 
jCenter(Bintray)䜢฼⏝ 
䝥䝻䝎䜽䝖䝁䞊䝗䛾౫Ꮡ䝷䜲䝤䝷䝸 
䝔䝇䝖䝁䞊䝗䛾౫Ꮡ䝷䜲䝤䝷䝸
規約 
} Java䝥䝷䜾䜲䞁䛾(䝕䝣䜷䝹䝖)䝍䝇䜽౫Ꮡ㛵ಀ 
6 
䛒䛟䜎䛷䝕䝣䜷䝹䝖䛷䛒䜚䚸 
⮬⏤䛻䜹䝇䝍䝬䜲䝈ྍ⬟
Antのビルドスクリプト(例) 
7 
project name=java-project basedir=. 
property name=build.dir value=build/ 
property name=main.src.dir value=src/main/java/ 
property name=main.classes.dir value=${build.dir}/classes/ 
main/ 
property name=test.src.dir value=src/test/java/ 
property name=test.classes.dir value=${build.dir}/classes/ 
test/ 
property name=test.results.dir value=${build.dir}/test-results/ 
property name=reports.dir value=${build.dir}/reports/ 
tests/ 
property name=jar.dir value=${build.dir}/lib/ 
path id=junit 
pathelement location=lib/junit-4.11.jar/ 
pathelement location=lib/hamcrest-core-1.3.jar/ 
/path 
target name=clean 
delete dir=${build.dir}/ 
/target 
target name=compile 
mkdir dir=${main.classes.dir}/ 
javac srcdir=${main.src.dir} destdir=${main.classes.dir} 
includeantruntime=false/ 
/target 
target name=jar depends=compile 
mkdir dir=${jar.dir}/ 
jar destfile=${jar.dir}/${ant.project.name}.jar 
basedir=${main.classes.dir}/ 
/target 
target name=testCompile 
mkdir dir=${test.classes.dir}/ 
javac srcdir=${test.src.dir} destdir=${test.classes.dir} 
includeantruntime=false 
classpath 
path refid=junit/ 
path location=${jar.dir}/${ant.project.name}.jar/ 
/classpath 
/javac 
/target 
target name=junit depends=jar,testCompile 
mkdir dir=${test.results.dir}/ 
junit printsummary=yes 
classpath 
path refid=junit/ 
path location=${jar.dir}/${ant.project.name}.jar/ 
path location=${test.classes.dir}/ 
/classpath 
formatter type=xml/ 
batchtest todir=${test.results.dir} 
fileset dir=${test.classes.dir}/ 
/batchtest 
/junit 
/target 
target name=junitreport depends=junit 
mkdir dir=${reports.dir}/ 
junitreport todir=${reports.dir} 
fileset dir=${test.results.dir} includes=TEST-*.xml/ 
report todir=${reports.dir}/ 
/junitreport 
/target 
/project
Gradle DSL 
} Gradle䛜⊂⮬䛻ᐃ⩏䛩䜛䛂䝡䝹䝗䛃グἲ 
} build.gradle䛷グ㏙䛩䜛㻌apply / repositories / 
dependencies 䛺䛹 
} Groovy䛾MOP䛺䛹䜢฼⏝䛧䛶ᐃ⩏ 
} DSL䛾ゎ㔘 
} apply / repositories / dependencies䛾ᐇయ䛿䝯䝋䝑䝗 
} ᘬᩘ䛾䜹䝑䝁䜢┬␎䛧䛶䛔䜛(Groovy䛾グἲ) 
} {} 䛾㒊ศ䛿Groovy䛾䜽䝻䞊䝆䝱 
} 䝯䝋䝑䝗䛾䝺䝅䞊䝞䛿Gradle䛜ᥦ౪䛩䜛䝗䝯䜲䞁䜸䝤 
䝆䜵䜽䝖 
8
Gradleインストール方法 
} ๓ᥦ 
} JDK 6௨ୖ 
} 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㻌䛻䝟䝇䜢㏻䛧䛶䛚䛟 
9
動作確認 
} gradle -v 
GVM䛷䜲䞁䝇䝖䞊䝹䛧䛯ሙྜ䛿 ~/.gvm/gradle/version㻌௨ୗ䛻ᑟධ䛥䜜䚸 
~/.gvm/gradle/current 䛻䝅䞁䝪䝸䝑䜽䝸䞁䜽䛜సᡂ䛥䜜䜎䛩 
10
Gradle最新動向(~2.1) 
11
Gradle2.0~2.1の主要アップデート 
} Gradle2.0 
} 䝯䝆䝱䞊䝞䞊䝆䝵䞁䜰䝑䝥䛻క䛖䜰䞊䜻䝔䜽䝏䝱䛾ᩚ⌮䛸 
ྂ䛔ᶵ⬟䛾ᨵᗫ 
} 䝧䞊䝇䛾Groovy䛾᭱᪂໬㻌(1.8.6 䊻 2.3.2) 
} Java 8䝃䝫䞊䝖 
} Ivy / Maven 䝸䝫䝆䝖䝸䜈䛾SFTP᥋⥆䝃䝫䞊䝖 
} Gradle2.1 
} 䝧䞊䝇䛾Groovy䛾᭱᪂໬㻌(2.3.2 䊻 2.3.6) 
} plugins 䝤䝻䝑䜽䛸䝥䝷䜾䜲䞁䝫䞊䝍䝹䛻䜘䜚䝥䝷䜾䜲䞁㐺⏝䛜ᐜ᫆䛻 
} 䝥䝷䜾䜲䞁㛤Ⓨ䝥䝷䜾䜲䞁(java-gradle-plugin)䛾㏣ຍ 
} Java䝋䞊䝇䛾䜲䞁䜽䝸䝯䞁䝍䝹䝁䞁䝟䜲䝹ᑐᛂ 
} exclude ᣦᐃ䜢maven-publish䝥䝷䜾䜲䞁䛜Ⓨ⾜䛩䜛POM䛻཯ᫎ 
} 䝡䝹䝗䛻䜘䛳䛶⏕ᡂ䛥䜜䜛䝁䞁䝫䞊䝛䞁䝖䛾ヲ⣽᝟ሗ⾲♧䝍䝇䜽 
(components)䛾㏣ຍ 
12
コミュニティプラグイン適用(~2.0) 
buildscript { 
repositories { 
jcenter() 
} 
dependencies { 
classpath com.bmuschko:gradle-tomcat-plugin: 
13 
2.0 
} 
} 
apply plugin: com.bmuschko.tomcat
コミュニティプラグイン適用(2.1~) 
plugins { 
id com.bmuschko.tomcat version 2.0 
} 
14 
䝥䝷䜾䜲䞁䝫䞊䝍䝹䛻Ⓩ㘓䛥䜜䛶䛔䜛䛣䛸䛜๓ᥦ
Gradleプラグインポータル 
15 
㼔㼠㼠㼜㻦㻛㻛㼜㼘㼡㼓㼕㼚㼟㻚㼓㼞㼍㼐㼘㼑㻚㼛㼞㼓㻛
インクリメンタルコンパイル対応 
} ኚ᭦䛾䛒䛳䛯Java䝋䞊䝇䛾䜏෌䝁䞁䝟䜲䝹 
} 2.0䜎䛷䛿䚸䝋䞊䝇䝉䝑䝖䛻ྵ䜎䜜䜛Java䝋䞊䝇䛾䛖䛱 
୍䛴䛷䜒ኚ᭦䛜䛒䜜䜀䚸඲య䜢෌䝁䞁䝟䜲䝹 
} 2.1䛷䛿෌䝁䞁䝟䜲䝹䜢ᚲせ᭱ᑠ㝈䛻 
} Ant䛾javac䝍䝇䜽䜢䜔䜑䚸Gradle⊂⮬䝁䞁䝟䜲䝷䜈 
} 䝕䝣䜷䝹䝖䛷䛿↓ຠ໬䛥䜜䛶䛔䜛 
} 䜲䞁䜽䝸䝯䞁䝍䝹䝁䞁䝟䜲䝹䛾ຠᯝ 
} 䝡䝹䝗᫬㛫▷⦰ 
} 䝞䜲䝖䝁䞊䝗ฎ⌮䜔ືⓗ䜽䝷䝇䝸䝻䞊䝗䜢⾜䛖ሙྜ 
䛾ᙳ㡪⠊ᅖ䛾᭱ᑠ໬ 
16
インクリメンタルコンパイル有効化 
} 䝡䝹䝗䝇䜽䝸䝥䝖㻌or ึᮇ໬䝇䜽䝸䝥䝖䛻㏣グ 
} ึᅇ䝡䝹䝗᫬䛻䜽䝷䝇ゎᯒ䝕䞊䝍䜢グ㘓䛧䚸௨㝆䛿ᕪ 
ศ䜢䝏䜵䝑䜽䛩䜛 
17 
allprojects { 
tasks.withType(JavaCompile) { 
options.incremental = true 
} 
}
18 
参考情報
Gradle関連情報 
} Gradle䝗䜻䝳䝯䞁䝖 
} http://www.gradle.org/documentation 
} Gradle䝗䜻䝳䝯䞁䝖(᪥ᮏㄒ⩻ヂ∧) 
} http://gradle.monochromeroad.com/docs/index.html 
䋻බᘧ䝗䜻䝳䝯䞁䝖䛻⛣⾜ணᐃ䛷䛩 
} 䝃䞁䝥䝹䝁䞊䝗 
} gradle-x.x-all.zip䛾”samples/”௨ୗ 
} 䝋䞊䝇䝁䞊䝗 
} https://github.com/gradle/gradle 
19
20 
㼔㼠㼠㼜㻦㻛㻛㼣㼣㼣㻚㼜㼕㼤㼕㼢㻚㼚㼑㼠㻛㼙㼑㼙㼎㼑㼞㼋㼕㼘㼘㼡㼟㼠㻚㼜㼔㼜㻫㼙㼛㼐㼑㻩㼙㼑㼐㼕㼡㼙㻒㼕㼘㼘㼡㼟㼠㼋㼕㼐㻩㻠㻝㻢㻣㻠㻠㻡
21 
次は 
「Gradleハンズオン基礎編」 
です

More Related Content

What's hot

システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法Takuma Watabiki
 
(IDEユーザのための) ClojureのEmacs開発環境について
(IDEユーザのための) ClojureのEmacs開発環境について(IDEユーザのための) ClojureのEmacs開発環境について
(IDEユーザのための) ClojureのEmacs開発環境についてKazuhiro Hara
 
今すぐブラウザでES6を使おう
今すぐブラウザでES6を使おう今すぐブラウザでES6を使おう
今すぐブラウザでES6を使おうHayashi Yuichi
 
Cryogenでサイトつくろーじぇん
CryogenでサイトつくろーじぇんCryogenでサイトつくろーじぇん
CryogenでサイトつくろーじぇんKazuhiro Hara
 
ひとりアドベントカレンダーのご紹介
ひとりアドベントカレンダーのご紹介ひとりアドベントカレンダーのご紹介
ひとりアドベントカレンダーのご紹介Kazuhiro Hara
 
明日から使えるgradle
明日から使えるgradle明日から使えるgradle
明日から使えるgradlekimukou_26 Kimukou
 
Android アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステムAndroid アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステムYu Nobuoka
 
AndroidStudioはじめました ~Gradle編~
AndroidStudioはじめました ~Gradle編~AndroidStudioはじめました ~Gradle編~
AndroidStudioはじめました ~Gradle編~Yabata Tomomitsu
 
Grails 3.0先取り!? Spring Boot入門ハンズオン #jggug_boot
Grails 3.0先取り!? Spring Boot入門ハンズオン #jggug_bootGrails 3.0先取り!? Spring Boot入門ハンズオン #jggug_boot
Grails 3.0先取り!? Spring Boot入門ハンズオン #jggug_bootToshiaki Maki
 
スッとGoを取り入れる
スッとGoを取り入れるスッとGoを取り入れる
スッとGoを取り入れるYusuke Wada
 
SwaggerとAPIのデザイン
SwaggerとAPIのデザインSwaggerとAPIのデザイン
SwaggerとAPIのデザインKazuhiro Hara
 
GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話mdome
 
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeomantomo_masakura
 
高速!Clojure Web 開発入門
高速!Clojure Web 開発入門高速!Clojure Web 開発入門
高速!Clojure Web 開発入門Kazuki Tsutsumi
 
プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例sohta
 
JavaScriptフレームワーク入門にVue.jsはいかが?
JavaScriptフレームワーク入門にVue.jsはいかが?JavaScriptフレームワーク入門にVue.jsはいかが?
JavaScriptフレームワーク入門にVue.jsはいかが?好洋 山崎
 
【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会Yuki Okada
 
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespacesIssei Hiraoka
 
ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!Yohei Fushii
 

What's hot (20)

システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法
 
(IDEユーザのための) ClojureのEmacs開発環境について
(IDEユーザのための) ClojureのEmacs開発環境について(IDEユーザのための) ClojureのEmacs開発環境について
(IDEユーザのための) ClojureのEmacs開発環境について
 
今すぐブラウザでES6を使おう
今すぐブラウザでES6を使おう今すぐブラウザでES6を使おう
今すぐブラウザでES6を使おう
 
Cryogenでサイトつくろーじぇん
CryogenでサイトつくろーじぇんCryogenでサイトつくろーじぇん
Cryogenでサイトつくろーじぇん
 
ひとりアドベントカレンダーのご紹介
ひとりアドベントカレンダーのご紹介ひとりアドベントカレンダーのご紹介
ひとりアドベントカレンダーのご紹介
 
Jenkins と groovy
Jenkins と groovyJenkins と groovy
Jenkins と groovy
 
明日から使えるgradle
明日から使えるgradle明日から使えるgradle
明日から使えるgradle
 
Android アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステムAndroid アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステム
 
AndroidStudioはじめました ~Gradle編~
AndroidStudioはじめました ~Gradle編~AndroidStudioはじめました ~Gradle編~
AndroidStudioはじめました ~Gradle編~
 
Grails 3.0先取り!? Spring Boot入門ハンズオン #jggug_boot
Grails 3.0先取り!? Spring Boot入門ハンズオン #jggug_bootGrails 3.0先取り!? Spring Boot入門ハンズオン #jggug_boot
Grails 3.0先取り!? Spring Boot入門ハンズオン #jggug_boot
 
スッとGoを取り入れる
スッとGoを取り入れるスッとGoを取り入れる
スッとGoを取り入れる
 
SwaggerとAPIのデザイン
SwaggerとAPIのデザインSwaggerとAPIのデザイン
SwaggerとAPIのデザイン
 
GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話
 
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman
 
高速!Clojure Web 開発入門
高速!Clojure Web 開発入門高速!Clojure Web 開発入門
高速!Clojure Web 開発入門
 
プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例
 
JavaScriptフレームワーク入門にVue.jsはいかが?
JavaScriptフレームワーク入門にVue.jsはいかが?JavaScriptフレームワーク入門にVue.jsはいかが?
JavaScriptフレームワーク入門にVue.jsはいかが?
 
【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会
 
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
 
ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!
 

Viewers also liked

Html5勉強会 20120423
Html5勉強会 20120423Html5勉強会 20120423
Html5勉強会 20120423Nobuhiro Sue
 
ぽんぽこバレー勉強会 20120427
ぽんぽこバレー勉強会 20120427ぽんぽこバレー勉強会 20120427
ぽんぽこバレー勉強会 20120427Nobuhiro Sue
 
Groovy indy 20120222
Groovy indy 20120222Groovy indy 20120222
Groovy indy 20120222Nobuhiro Sue
 
Gws 20140418 camel_groovy
Gws 20140418 camel_groovyGws 20140418 camel_groovy
Gws 20140418 camel_groovyNobuhiro Sue
 
G*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxG*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxNobuhiro Sue
 
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
JJUG CCC 2011 Fall / Web test automation with Geb and SpockJJUG CCC 2011 Fall / Web test automation with Geb and Spock
JJUG CCC 2011 Fall / Web test automation with Geb and SpockNobuhiro Sue
 
20140329_kyon_kao_wedding_LT_Groovy
20140329_kyon_kao_wedding_LT_Groovy20140329_kyon_kao_wedding_LT_Groovy
20140329_kyon_kao_wedding_LT_GroovyNobuhiro Sue
 
20111031 MobileWeb at TDC
20111031 MobileWeb at TDC20111031 MobileWeb at TDC
20111031 MobileWeb at TDCNobuhiro Sue
 
Jjug 20140430 gradle_intro
Jjug 20140430 gradle_introJjug 20140430 gradle_intro
Jjug 20140430 gradle_introNobuhiro Sue
 
Light and shadow of microservices
Light and shadow of microservicesLight and shadow of microservices
Light and shadow of microservicesNobuhiro Sue
 
JSUG20171027-spfingboot-k8s-ocp
JSUG20171027-spfingboot-k8s-ocpJSUG20171027-spfingboot-k8s-ocp
JSUG20171027-spfingboot-k8s-ocpNobuhiro Sue
 

Viewers also liked (11)

Html5勉強会 20120423
Html5勉強会 20120423Html5勉強会 20120423
Html5勉強会 20120423
 
ぽんぽこバレー勉強会 20120427
ぽんぽこバレー勉強会 20120427ぽんぽこバレー勉強会 20120427
ぽんぽこバレー勉強会 20120427
 
Groovy indy 20120222
Groovy indy 20120222Groovy indy 20120222
Groovy indy 20120222
 
Gws 20140418 camel_groovy
Gws 20140418 camel_groovyGws 20140418 camel_groovy
Gws 20140418 camel_groovy
 
G*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxG*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+Betamax
 
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
JJUG CCC 2011 Fall / Web test automation with Geb and SpockJJUG CCC 2011 Fall / Web test automation with Geb and Spock
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
 
20140329_kyon_kao_wedding_LT_Groovy
20140329_kyon_kao_wedding_LT_Groovy20140329_kyon_kao_wedding_LT_Groovy
20140329_kyon_kao_wedding_LT_Groovy
 
20111031 MobileWeb at TDC
20111031 MobileWeb at TDC20111031 MobileWeb at TDC
20111031 MobileWeb at TDC
 
Jjug 20140430 gradle_intro
Jjug 20140430 gradle_introJjug 20140430 gradle_intro
Jjug 20140430 gradle_intro
 
Light and shadow of microservices
Light and shadow of microservicesLight and shadow of microservices
Light and shadow of microservices
 
JSUG20171027-spfingboot-k8s-ocp
JSUG20171027-spfingboot-k8s-ocpJSUG20171027-spfingboot-k8s-ocp
JSUG20171027-spfingboot-k8s-ocp
 

Similar to Gws 20141024 gradle_intro

Groovy base gradle_20130309
Groovy base gradle_20130309Groovy base gradle_20130309
Groovy base gradle_20130309Nobuhiro Sue
 
Groovy Grails eXchage 2014 報告
Groovy Grails eXchage 2014 報告Groovy Grails eXchage 2014 報告
Groovy Grails eXchage 2014 報告Tsuyoshi Yamamoto
 
Struts2を始めよう!
Struts2を始めよう!Struts2を始めよう!
Struts2を始めよう!Shinpei Ohtani
 
Markup Template Engine introduced Groovy 2.3
Markup Template Engine introduced Groovy 2.3Markup Template Engine introduced Groovy 2.3
Markup Template Engine introduced Groovy 2.3Uehara Junji
 
20130126 OpenData and Android
20130126 OpenData and Android20130126 OpenData and Android
20130126 OpenData and AndroidKenichi Ohwada
 
2013.01.18 G*Workshop GGX 2012 Report
2013.01.18 G*Workshop GGX 2012 Report2013.01.18 G*Workshop GGX 2012 Report
2013.01.18 G*Workshop GGX 2012 ReportYu Sudo
 
Gradleプラグインを作成してみた
Gradleプラグインを作成してみたGradleプラグインを作成してみた
Gradleプラグインを作成してみたshinya sakemoto
 
長いの
長いの長いの
長いのemasaka
 
Gws 20120521 gradle
Gws 20120521 gradleGws 20120521 gradle
Gws 20120521 gradleNobuhiro Sue
 
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframeworkSpring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframeworkToshiaki Maki
 
MTDDC 2013: Movable Type 6: 新しいMovable Typeのコンセプトと特徴
MTDDC 2013: Movable Type 6: 新しいMovable Typeのコンセプトと特徴MTDDC 2013: Movable Type 6: 新しいMovable Typeのコンセプトと特徴
MTDDC 2013: Movable Type 6: 新しいMovable Typeのコンセプトと特徴Daiji Hirata
 
TDC20111031_Groovy_Geb
TDC20111031_Groovy_GebTDC20111031_Groovy_Geb
TDC20111031_Groovy_GebNobuhiro Sue
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む2bo 2bo
 
ヒカルのGo 資料 Webアプリケーションの作り方
ヒカルのGo 資料 Webアプリケーションの作り方ヒカルのGo 資料 Webアプリケーションの作り方
ヒカルのGo 資料 Webアプリケーションの作り方Yosuke Furukawa
 
Azure Functions あれこれ
Azure Functions あれこれAzure Functions あれこれ
Azure Functions あれこれYasuaki Matsuda
 
Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUGGroovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUGUehara Junji
 

Similar to Gws 20141024 gradle_intro (20)

Groovyの紹介20130323
Groovyの紹介20130323Groovyの紹介20130323
Groovyの紹介20130323
 
Groovy base gradle_20130309
Groovy base gradle_20130309Groovy base gradle_20130309
Groovy base gradle_20130309
 
Groovy Grails eXchage 2014 報告
Groovy Grails eXchage 2014 報告Groovy Grails eXchage 2014 報告
Groovy Grails eXchage 2014 報告
 
Struts2を始めよう!
Struts2を始めよう!Struts2を始めよう!
Struts2を始めよう!
 
scala-kaigi1-sbt
scala-kaigi1-sbtscala-kaigi1-sbt
scala-kaigi1-sbt
 
Markup Template Engine introduced Groovy 2.3
Markup Template Engine introduced Groovy 2.3Markup Template Engine introduced Groovy 2.3
Markup Template Engine introduced Groovy 2.3
 
20130126 OpenData and Android
20130126 OpenData and Android20130126 OpenData and Android
20130126 OpenData and Android
 
2013.01.18 G*Workshop GGX 2012 Report
2013.01.18 G*Workshop GGX 2012 Report2013.01.18 G*Workshop GGX 2012 Report
2013.01.18 G*Workshop GGX 2012 Report
 
Gradleプラグインを作成してみた
Gradleプラグインを作成してみたGradleプラグインを作成してみた
Gradleプラグインを作成してみた
 
長いの
長いの長いの
長いの
 
Gws 20120521 gradle
Gws 20120521 gradleGws 20120521 gradle
Gws 20120521 gradle
 
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframeworkSpring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
 
MTDDC 2013: Movable Type 6: 新しいMovable Typeのコンセプトと特徴
MTDDC 2013: Movable Type 6: 新しいMovable Typeのコンセプトと特徴MTDDC 2013: Movable Type 6: 新しいMovable Typeのコンセプトと特徴
MTDDC 2013: Movable Type 6: 新しいMovable Typeのコンセプトと特徴
 
TDC20111031_Groovy_Geb
TDC20111031_Groovy_GebTDC20111031_Groovy_Geb
TDC20111031_Groovy_Geb
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
 
Rx java x retrofit
Rx java x retrofitRx java x retrofit
Rx java x retrofit
 
Oracle GoldenGate Studio概要
Oracle GoldenGate Studio概要Oracle GoldenGate Studio概要
Oracle GoldenGate Studio概要
 
ヒカルのGo 資料 Webアプリケーションの作り方
ヒカルのGo 資料 Webアプリケーションの作り方ヒカルのGo 資料 Webアプリケーションの作り方
ヒカルのGo 資料 Webアプリケーションの作り方
 
Azure Functions あれこれ
Azure Functions あれこれAzure Functions あれこれ
Azure Functions あれこれ
 
Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUGGroovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUG
 

More from Nobuhiro Sue

Fuse Online Hands-on Guide
Fuse Online Hands-on GuideFuse Online Hands-on Guide
Fuse Online Hands-on GuideNobuhiro Sue
 
Fuse Online Hands-on Guide
Fuse Online Hands-on GuideFuse Online Hands-on Guide
Fuse Online Hands-on GuideNobuhiro Sue
 
Knative CloudEvents
Knative CloudEventsKnative CloudEvents
Knative CloudEventsNobuhiro Sue
 
JTF2018_B30_k8s_operator_nobusue
JTF2018_B30_k8s_operator_nobusueJTF2018_B30_k8s_operator_nobusue
JTF2018_B30_k8s_operator_nobusueNobuhiro Sue
 
DevLove k8s nobusue 20180711
DevLove k8s nobusue 20180711DevLove k8s nobusue 20180711
DevLove k8s nobusue 20180711Nobuhiro Sue
 
Gws 20131018 vertx_handson(updated)
Gws 20131018 vertx_handson(updated)Gws 20131018 vertx_handson(updated)
Gws 20131018 vertx_handson(updated)Nobuhiro Sue
 
Gws 20130315 gradle_handson
Gws 20130315 gradle_handsonGws 20130315 gradle_handson
Gws 20130315 gradle_handsonNobuhiro Sue
 
クラウド研究会 20120712 BaaS
クラウド研究会 20120712 BaaSクラウド研究会 20120712 BaaS
クラウド研究会 20120712 BaaSNobuhiro Sue
 
Letsgo developer 2012 Continuous Delivery
Letsgo developer 2012 Continuous DeliveryLetsgo developer 2012 Continuous Delivery
Letsgo developer 2012 Continuous DeliveryNobuhiro Sue
 
Letsgo sendai nobusue_20110528
Letsgo sendai nobusue_20110528Letsgo sendai nobusue_20110528
Letsgo sendai nobusue_20110528Nobuhiro Sue
 
DevSummit2011JGGUG OpenJam: Groovy
DevSummit2011JGGUG OpenJam: GroovyDevSummit2011JGGUG OpenJam: Groovy
DevSummit2011JGGUG OpenJam: GroovyNobuhiro Sue
 
G*workshop 20101209 OSGi and Grails2.0
G*workshop 20101209 OSGi and Grails2.0G*workshop 20101209 OSGi and Grails2.0
G*workshop 20101209 OSGi and Grails2.0Nobuhiro Sue
 
DevLOVE 20100823 EnterpriseOSGi
DevLOVE 20100823 EnterpriseOSGiDevLOVE 20100823 EnterpriseOSGi
DevLOVE 20100823 EnterpriseOSGiNobuhiro Sue
 
Gws sokai 20100724_nsue
Gws sokai 20100724_nsueGws sokai 20100724_nsue
Gws sokai 20100724_nsueNobuhiro Sue
 
G*workshop sendai 20100424(v2)
G*workshop sendai 20100424(v2)G*workshop sendai 20100424(v2)
G*workshop sendai 20100424(v2)Nobuhiro Sue
 

More from Nobuhiro Sue (16)

Fuse Online Hands-on Guide
Fuse Online Hands-on GuideFuse Online Hands-on Guide
Fuse Online Hands-on Guide
 
Fuse Online Hands-on Guide
Fuse Online Hands-on GuideFuse Online Hands-on Guide
Fuse Online Hands-on Guide
 
Knative CloudEvents
Knative CloudEventsKnative CloudEvents
Knative CloudEvents
 
JTF2018_B30_k8s_operator_nobusue
JTF2018_B30_k8s_operator_nobusueJTF2018_B30_k8s_operator_nobusue
JTF2018_B30_k8s_operator_nobusue
 
DevLove k8s nobusue 20180711
DevLove k8s nobusue 20180711DevLove k8s nobusue 20180711
DevLove k8s nobusue 20180711
 
Gws 20140117 lt
Gws 20140117 ltGws 20140117 lt
Gws 20140117 lt
 
Gws 20131018 vertx_handson(updated)
Gws 20131018 vertx_handson(updated)Gws 20131018 vertx_handson(updated)
Gws 20131018 vertx_handson(updated)
 
Gws 20130315 gradle_handson
Gws 20130315 gradle_handsonGws 20130315 gradle_handson
Gws 20130315 gradle_handson
 
クラウド研究会 20120712 BaaS
クラウド研究会 20120712 BaaSクラウド研究会 20120712 BaaS
クラウド研究会 20120712 BaaS
 
Letsgo developer 2012 Continuous Delivery
Letsgo developer 2012 Continuous DeliveryLetsgo developer 2012 Continuous Delivery
Letsgo developer 2012 Continuous Delivery
 
Letsgo sendai nobusue_20110528
Letsgo sendai nobusue_20110528Letsgo sendai nobusue_20110528
Letsgo sendai nobusue_20110528
 
DevSummit2011JGGUG OpenJam: Groovy
DevSummit2011JGGUG OpenJam: GroovyDevSummit2011JGGUG OpenJam: Groovy
DevSummit2011JGGUG OpenJam: Groovy
 
G*workshop 20101209 OSGi and Grails2.0
G*workshop 20101209 OSGi and Grails2.0G*workshop 20101209 OSGi and Grails2.0
G*workshop 20101209 OSGi and Grails2.0
 
DevLOVE 20100823 EnterpriseOSGi
DevLOVE 20100823 EnterpriseOSGiDevLOVE 20100823 EnterpriseOSGi
DevLOVE 20100823 EnterpriseOSGi
 
Gws sokai 20100724_nsue
Gws sokai 20100724_nsueGws sokai 20100724_nsue
Gws sokai 20100724_nsue
 
G*workshop sendai 20100424(v2)
G*workshop sendai 20100424(v2)G*workshop sendai 20100424(v2)
G*workshop sendai 20100424(v2)
 

Recently uploaded

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 

Recently uploaded (8)

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 

Gws 20141024 gradle_intro

  • 1. G*ワークショップZ Oct 2014 Gradleイントロダクション 最新動向(~2.1) 2014.10.24 須江信洋(@nobusue) http://nobusue.hatenablog.com/ https://www.facebook.com/nobuhiro.sue
  • 2. 自己紹介 } 㡲Ụ㻌ಙὒ䠄䛩䛘㻌䛾䜆䜂䜝䠅 } Twitter: @nobusue } https://www.facebook.com/nobuhiro.sue } ⣙10ᖺ䜋䛹JavaEE㛵㐃䛾௙஦䜢䛧䛶䜎䛧䛯 } 2013ᖺ10᭶䜘䜚䝣䝸䞊䝷䞁䝇(ಶே஦ᴗ୺) } ᭱㏆䛾䛚௙஦ 㻞 } IoT(Internet of Things)䛾䝃䞊䝡䝇ᇶ┙ᵓ⠏ } AWS / Cloudera Manager / CDH } Spark / Kafka / OpenTSDB / MongoDB / RStudio } Groovy / Gradle / SBT / Maven / Jenkins / Vagrant
  • 4. Gradleとは? } Groovy䝧䞊䝇䛾䝡䝹䝗䝒䞊䝹 } 䜽䝻䝇䝥䝷䝑䝖䝣䜷䞊䝮㻌(JavaVMୖ䛷ືస) } Groovy䝇䜽䝸䝥䝖䛷䝡䝹䝗䜢グ㏙(no more XML) } 䝡䝹䝗グ㏙䜢⡆₩䛻䛩䜛DSL䜢ᥦ౪ } つ⣙䛸ᰂ㌾ᛶ䛾㐺ษ䛺䝖䝺䞊䝗䜸䝣 } Ant:㻌ᰂ㌾䛰䛜䚸⮬⏤䛩䛞䛶㠀ຠ⋡ⓗ } Maven: つ⣙䛻䜘䜛ຠ⋡໬䚸䛧䛛䛧⼥㏻䛜ຠ䛛䛺䛔 } Gradle: つ⣙䛿䛒䜛䛜䜹䝇䝍䝬䜲䝈ྍ⬟ } ᪤Ꮡ㈨⏘䛾᭷ຠά⏝ } Ant䝍䝇䜽䜔䝡䝹䝗ᐃ⩏䜢䛭䛾䜎䜎෌฼⏝ } Maven/Ivy䝸䝫䝆䝖䝸䜢฼⏝ྍ⬟ } 䝡䝹䝗䝇䜽䝸䝥䝖ෆ䛷Java䝷䜲䝤䝷䝸䜢┤᥋฼⏝ྍ⬟ 4 http://gradle.org/
  • 5. Gradleのビルドスクリプト(例) apply plugin: 'java' repositories { jcenter() } dependencies { compile ‘org.slf4j:slf4j-api:1.7.5’ testCompile ‘junit:junit:4.11’ } 5 Java䝥䝷䜾䜲䞁䜢㐺⏝ ౫ᏑᛶゎỴ䛻 jCenter(Bintray)䜢฼⏝ 䝥䝻䝎䜽䝖䝁䞊䝗䛾౫Ꮡ䝷䜲䝤䝷䝸 䝔䝇䝖䝁䞊䝗䛾౫Ꮡ䝷䜲䝤䝷䝸
  • 6. 規約 } Java䝥䝷䜾䜲䞁䛾(䝕䝣䜷䝹䝖)䝍䝇䜽౫Ꮡ㛵ಀ 6 䛒䛟䜎䛷䝕䝣䜷䝹䝖䛷䛒䜚䚸 ⮬⏤䛻䜹䝇䝍䝬䜲䝈ྍ⬟
  • 7. Antのビルドスクリプト(例) 7 project name=java-project basedir=. property name=build.dir value=build/ property name=main.src.dir value=src/main/java/ property name=main.classes.dir value=${build.dir}/classes/ main/ property name=test.src.dir value=src/test/java/ property name=test.classes.dir value=${build.dir}/classes/ test/ property name=test.results.dir value=${build.dir}/test-results/ property name=reports.dir value=${build.dir}/reports/ tests/ property name=jar.dir value=${build.dir}/lib/ path id=junit pathelement location=lib/junit-4.11.jar/ pathelement location=lib/hamcrest-core-1.3.jar/ /path target name=clean delete dir=${build.dir}/ /target target name=compile mkdir dir=${main.classes.dir}/ javac srcdir=${main.src.dir} destdir=${main.classes.dir} includeantruntime=false/ /target target name=jar depends=compile mkdir dir=${jar.dir}/ jar destfile=${jar.dir}/${ant.project.name}.jar basedir=${main.classes.dir}/ /target target name=testCompile mkdir dir=${test.classes.dir}/ javac srcdir=${test.src.dir} destdir=${test.classes.dir} includeantruntime=false classpath path refid=junit/ path location=${jar.dir}/${ant.project.name}.jar/ /classpath /javac /target target name=junit depends=jar,testCompile mkdir dir=${test.results.dir}/ junit printsummary=yes classpath path refid=junit/ path location=${jar.dir}/${ant.project.name}.jar/ path location=${test.classes.dir}/ /classpath formatter type=xml/ batchtest todir=${test.results.dir} fileset dir=${test.classes.dir}/ /batchtest /junit /target target name=junitreport depends=junit mkdir dir=${reports.dir}/ junitreport todir=${reports.dir} fileset dir=${test.results.dir} includes=TEST-*.xml/ report todir=${reports.dir}/ /junitreport /target /project
  • 8. Gradle DSL } Gradle䛜⊂⮬䛻ᐃ⩏䛩䜛䛂䝡䝹䝗䛃グἲ } build.gradle䛷グ㏙䛩䜛㻌apply / repositories / dependencies 䛺䛹 } Groovy䛾MOP䛺䛹䜢฼⏝䛧䛶ᐃ⩏ } DSL䛾ゎ㔘 } apply / repositories / dependencies䛾ᐇయ䛿䝯䝋䝑䝗 } ᘬᩘ䛾䜹䝑䝁䜢┬␎䛧䛶䛔䜛(Groovy䛾グἲ) } {} 䛾㒊ศ䛿Groovy䛾䜽䝻䞊䝆䝱 } 䝯䝋䝑䝗䛾䝺䝅䞊䝞䛿Gradle䛜ᥦ౪䛩䜛䝗䝯䜲䞁䜸䝤 䝆䜵䜽䝖 8
  • 9. Gradleインストール方法 } ๓ᥦ } JDK 6௨ୖ } 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㻌䛻䝟䝇䜢㏻䛧䛶䛚䛟 9
  • 10. 動作確認 } gradle -v GVM䛷䜲䞁䝇䝖䞊䝹䛧䛯ሙྜ䛿 ~/.gvm/gradle/version㻌௨ୗ䛻ᑟධ䛥䜜䚸 ~/.gvm/gradle/current 䛻䝅䞁䝪䝸䝑䜽䝸䞁䜽䛜సᡂ䛥䜜䜎䛩 10
  • 12. Gradle2.0~2.1の主要アップデート } Gradle2.0 } 䝯䝆䝱䞊䝞䞊䝆䝵䞁䜰䝑䝥䛻క䛖䜰䞊䜻䝔䜽䝏䝱䛾ᩚ⌮䛸 ྂ䛔ᶵ⬟䛾ᨵᗫ } 䝧䞊䝇䛾Groovy䛾᭱᪂໬㻌(1.8.6 䊻 2.3.2) } Java 8䝃䝫䞊䝖 } Ivy / Maven 䝸䝫䝆䝖䝸䜈䛾SFTP᥋⥆䝃䝫䞊䝖 } Gradle2.1 } 䝧䞊䝇䛾Groovy䛾᭱᪂໬㻌(2.3.2 䊻 2.3.6) } plugins 䝤䝻䝑䜽䛸䝥䝷䜾䜲䞁䝫䞊䝍䝹䛻䜘䜚䝥䝷䜾䜲䞁㐺⏝䛜ᐜ᫆䛻 } 䝥䝷䜾䜲䞁㛤Ⓨ䝥䝷䜾䜲䞁(java-gradle-plugin)䛾㏣ຍ } Java䝋䞊䝇䛾䜲䞁䜽䝸䝯䞁䝍䝹䝁䞁䝟䜲䝹ᑐᛂ } exclude ᣦᐃ䜢maven-publish䝥䝷䜾䜲䞁䛜Ⓨ⾜䛩䜛POM䛻཯ᫎ } 䝡䝹䝗䛻䜘䛳䛶⏕ᡂ䛥䜜䜛䝁䞁䝫䞊䝛䞁䝖䛾ヲ⣽᝟ሗ⾲♧䝍䝇䜽 (components)䛾㏣ຍ 12
  • 13. コミュニティプラグイン適用(~2.0) buildscript { repositories { jcenter() } dependencies { classpath com.bmuschko:gradle-tomcat-plugin: 13 2.0 } } apply plugin: com.bmuschko.tomcat
  • 14. コミュニティプラグイン適用(2.1~) plugins { id com.bmuschko.tomcat version 2.0 } 14 䝥䝷䜾䜲䞁䝫䞊䝍䝹䛻Ⓩ㘓䛥䜜䛶䛔䜛䛣䛸䛜๓ᥦ
  • 16. インクリメンタルコンパイル対応 } ኚ᭦䛾䛒䛳䛯Java䝋䞊䝇䛾䜏෌䝁䞁䝟䜲䝹 } 2.0䜎䛷䛿䚸䝋䞊䝇䝉䝑䝖䛻ྵ䜎䜜䜛Java䝋䞊䝇䛾䛖䛱 ୍䛴䛷䜒ኚ᭦䛜䛒䜜䜀䚸඲య䜢෌䝁䞁䝟䜲䝹 } 2.1䛷䛿෌䝁䞁䝟䜲䝹䜢ᚲせ᭱ᑠ㝈䛻 } Ant䛾javac䝍䝇䜽䜢䜔䜑䚸Gradle⊂⮬䝁䞁䝟䜲䝷䜈 } 䝕䝣䜷䝹䝖䛷䛿↓ຠ໬䛥䜜䛶䛔䜛 } 䜲䞁䜽䝸䝯䞁䝍䝹䝁䞁䝟䜲䝹䛾ຠᯝ } 䝡䝹䝗᫬㛫▷⦰ } 䝞䜲䝖䝁䞊䝗ฎ⌮䜔ືⓗ䜽䝷䝇䝸䝻䞊䝗䜢⾜䛖ሙྜ 䛾ᙳ㡪⠊ᅖ䛾᭱ᑠ໬ 16
  • 17. インクリメンタルコンパイル有効化 } 䝡䝹䝗䝇䜽䝸䝥䝖㻌or ึᮇ໬䝇䜽䝸䝥䝖䛻㏣グ } ึᅇ䝡䝹䝗᫬䛻䜽䝷䝇ゎᯒ䝕䞊䝍䜢グ㘓䛧䚸௨㝆䛿ᕪ ศ䜢䝏䜵䝑䜽䛩䜛 17 allprojects { tasks.withType(JavaCompile) { options.incremental = true } }
  • 19. Gradle関連情報 } Gradle䝗䜻䝳䝯䞁䝖 } http://www.gradle.org/documentation } Gradle䝗䜻䝳䝯䞁䝖(᪥ᮏㄒ⩻ヂ∧) } http://gradle.monochromeroad.com/docs/index.html 䋻බᘧ䝗䜻䝳䝯䞁䝖䛻⛣⾜ணᐃ䛷䛩 } 䝃䞁䝥䝹䝁䞊䝗 } gradle-x.x-all.zip䛾”samples/”௨ୗ } 䝋䞊䝇䝁䞊䝗 } https://github.com/gradle/gradle 19