Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Nobuhiro Sue
10,842 views
Jjug 20140430 gradle_intro
Read more
23
Save
Share
Embed
Embed presentation
Download
Downloaded 29 times
1
/ 36
2
/ 36
3
/ 36
4
/ 36
5
/ 36
6
/ 36
7
/ 36
8
/ 36
9
/ 36
10
/ 36
11
/ 36
12
/ 36
13
/ 36
14
/ 36
15
/ 36
16
/ 36
17
/ 36
18
/ 36
19
/ 36
20
/ 36
21
/ 36
22
/ 36
23
/ 36
24
/ 36
25
/ 36
26
/ 36
27
/ 36
28
/ 36
29
/ 36
30
/ 36
31
/ 36
32
/ 36
33
/ 36
34
/ 36
35
/ 36
36
/ 36
More Related Content
PDF
20140329_kyon_kao_wedding_LT_Groovy
by
Nobuhiro Sue
PDF
Gws 20140418 camel_groovy
by
Nobuhiro Sue
PDF
第7回フクオカRuby大賞本審査資料:全文検索エンジンGroongaへのmrubyの組み込み
by
Kouhei Sutou
PDF
HerokuでGroonga
by
Kouhei Sutou
PDF
わしわし的おすすめ .gitconfig 設定 (と見せかけて実はみんなのおすすめ .gitconfig 設定を教えてもらう魂胆) #広島Git 勉強会
by
Yukinori KITADAI
PDF
GameJamでGithubを使おう
by
Ryouta Morita
PDF
プレゼンテーション スキルアップセミナー
by
Kazuyoshi Motoki
PPT
twitter Bot Generator プレゼン in XOOPS Cubeサタデーラボ
by
valient
20140329_kyon_kao_wedding_LT_Groovy
by
Nobuhiro Sue
Gws 20140418 camel_groovy
by
Nobuhiro Sue
第7回フクオカRuby大賞本審査資料:全文検索エンジンGroongaへのmrubyの組み込み
by
Kouhei Sutou
HerokuでGroonga
by
Kouhei Sutou
わしわし的おすすめ .gitconfig 設定 (と見せかけて実はみんなのおすすめ .gitconfig 設定を教えてもらう魂胆) #広島Git 勉強会
by
Yukinori KITADAI
GameJamでGithubを使おう
by
Ryouta Morita
プレゼンテーション スキルアップセミナー
by
Kazuyoshi Motoki
twitter Bot Generator プレゼン in XOOPS Cubeサタデーラボ
by
valient
Viewers also liked
PDF
Jjug 20140430 gradle_basic
by
Takuma Watabiki
PPTX
Jjug 20140430 gradle_advanced
by
Masatoshi Hayashi
PDF
Html5勉強会 20120423
by
Nobuhiro Sue
PDF
ぽんぽこバレー勉強会 20120427
by
Nobuhiro Sue
PPT
20111031 MobileWeb at TDC
by
Nobuhiro Sue
PDF
Groovy indy 20120222
by
Nobuhiro Sue
PDF
Gws 20141024 gradle_intro
by
Nobuhiro Sue
PDF
G*workshop 2011/11/22 Geb+Betamax
by
Nobuhiro Sue
PPTX
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
by
Nobuhiro Sue
PDF
Light and shadow of microservices
by
Nobuhiro Sue
PDF
JSUG20171027-spfingboot-k8s-ocp
by
Nobuhiro Sue
Jjug 20140430 gradle_basic
by
Takuma Watabiki
Jjug 20140430 gradle_advanced
by
Masatoshi Hayashi
Html5勉強会 20120423
by
Nobuhiro Sue
ぽんぽこバレー勉強会 20120427
by
Nobuhiro Sue
20111031 MobileWeb at TDC
by
Nobuhiro Sue
Groovy indy 20120222
by
Nobuhiro Sue
Gws 20141024 gradle_intro
by
Nobuhiro Sue
G*workshop 2011/11/22 Geb+Betamax
by
Nobuhiro Sue
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
by
Nobuhiro Sue
Light and shadow of microservices
by
Nobuhiro Sue
JSUG20171027-spfingboot-k8s-ocp
by
Nobuhiro Sue
Similar to Jjug 20140430 gradle_intro
PDF
Gws 20120521 gradle
by
Nobuhiro Sue
PDF
Groovy base gradle_20130309
by
Nobuhiro Sue
PDF
Spring in-summer-gradle-hands on-withanswers
by
Takuma Watabiki
PDF
Gradle a new Generation Build Tool
by
Shinya Mochida
PPTX
[社内勉強会]Gradleを使おう
by
hirooooo
PDF
Androidアプリ開発で活躍必至!? ビルドツールGradle
by
amayaw9
PDF
Gws 20130315 gradle_handson
by
Nobuhiro Sue
PPTX
Gradle入門
by
orekyuu
PDF
Gradle handson
by
Nemoto Yusuke
PDF
明日から使えるgradle
by
kimukou_26 Kimukou
PDF
Gradle布教活動
by
Nemoto Yusuke
PDF
Gradleどうでしょう
by
Takuma Watabiki
PPTX
Gradle入門
by
Lee Choong Geun
PDF
Agileツール適合化分科会(構成管理・ビルドツール)
by
masanori kataoka
PDF
AndroidStudioはじめました ~Gradle編~
by
Yabata Tomomitsu
PDF
groovy 2.1.0 20130118
by
Uehara Junji
ODP
Nseg20120929
by
hiro345
PDF
Android アプリ開発における Gradle ビルドシステム
by
Yu Nobuoka
PDF
Android App Development with Gradle & Android Studio
by
Soichiro Kashima
PDF
Grailsのススメ(仮)
by
Tsuyoshi Yamamoto
Gws 20120521 gradle
by
Nobuhiro Sue
Groovy base gradle_20130309
by
Nobuhiro Sue
Spring in-summer-gradle-hands on-withanswers
by
Takuma Watabiki
Gradle a new Generation Build Tool
by
Shinya Mochida
[社内勉強会]Gradleを使おう
by
hirooooo
Androidアプリ開発で活躍必至!? ビルドツールGradle
by
amayaw9
Gws 20130315 gradle_handson
by
Nobuhiro Sue
Gradle入門
by
orekyuu
Gradle handson
by
Nemoto Yusuke
明日から使えるgradle
by
kimukou_26 Kimukou
Gradle布教活動
by
Nemoto Yusuke
Gradleどうでしょう
by
Takuma Watabiki
Gradle入門
by
Lee Choong Geun
Agileツール適合化分科会(構成管理・ビルドツール)
by
masanori kataoka
AndroidStudioはじめました ~Gradle編~
by
Yabata Tomomitsu
groovy 2.1.0 20130118
by
Uehara Junji
Nseg20120929
by
hiro345
Android アプリ開発における Gradle ビルドシステム
by
Yu Nobuoka
Android App Development with Gradle & Android Studio
by
Soichiro Kashima
Grailsのススメ(仮)
by
Tsuyoshi Yamamoto
More from Nobuhiro Sue
PDF
Fuse Online Hands-on Guide
by
Nobuhiro Sue
PDF
Fuse Online Hands-on Guide
by
Nobuhiro Sue
PDF
Knative CloudEvents
by
Nobuhiro Sue
PDF
JTF2018_B30_k8s_operator_nobusue
by
Nobuhiro Sue
PDF
DevLove k8s nobusue 20180711
by
Nobuhiro Sue
PDF
Gws 20140117 lt
by
Nobuhiro Sue
PDF
Gws 20131018 vertx_handson(updated)
by
Nobuhiro Sue
PDF
クラウド研究会 20120712 BaaS
by
Nobuhiro Sue
PDF
Letsgo developer 2012 Continuous Delivery
by
Nobuhiro Sue
PPTX
TDC20111031_Groovy_Geb
by
Nobuhiro Sue
PPTX
Letsgo sendai nobusue_20110528
by
Nobuhiro Sue
PPTX
DevSummit2011JGGUG OpenJam: Groovy
by
Nobuhiro Sue
PPTX
G*workshop 20101209 OSGi and Grails2.0
by
Nobuhiro Sue
PPTX
DevLOVE 20100823 EnterpriseOSGi
by
Nobuhiro Sue
PPTX
Gws sokai 20100724_nsue
by
Nobuhiro Sue
PPT
G*workshop sendai 20100424(v2)
by
Nobuhiro Sue
Fuse Online Hands-on Guide
by
Nobuhiro Sue
Fuse Online Hands-on Guide
by
Nobuhiro Sue
Knative CloudEvents
by
Nobuhiro Sue
JTF2018_B30_k8s_operator_nobusue
by
Nobuhiro Sue
DevLove k8s nobusue 20180711
by
Nobuhiro Sue
Gws 20140117 lt
by
Nobuhiro Sue
Gws 20131018 vertx_handson(updated)
by
Nobuhiro Sue
クラウド研究会 20120712 BaaS
by
Nobuhiro Sue
Letsgo developer 2012 Continuous Delivery
by
Nobuhiro Sue
TDC20111031_Groovy_Geb
by
Nobuhiro Sue
Letsgo sendai nobusue_20110528
by
Nobuhiro Sue
DevSummit2011JGGUG OpenJam: Groovy
by
Nobuhiro Sue
G*workshop 20101209 OSGi and Grails2.0
by
Nobuhiro Sue
DevLOVE 20100823 EnterpriseOSGi
by
Nobuhiro Sue
Gws sokai 20100724_nsue
by
Nobuhiro Sue
G*workshop sendai 20100424(v2)
by
Nobuhiro Sue
Jjug 20140430 gradle_intro
1.
2014.04.30 須江信洋(@nobusue) http://d.hatena.ne.jp/nobusue https://www.facebook.com/nobuhiro.sue 2時間で分かる! 次世代ビルドツールの本命 Gradleの全貌 ~導入編~
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
5.
5 Gradle概要
6.
Ant/Mavenの課題を解決する次世代ビルドツール AntとMavenの「いいとこどり」
HibernateやSpringなど、多くのプロジェクトで採用 標準化と柔軟性の両立 Mavenライクな標準ディレクトリ構造を使い、そこから外れる 部分は自由にカスタマイズ可能 依存ライブラリはMavenリポジトリでもローカルJARでも好き なように定義できる マルチプロジェクトへの対応が容易 ビルドスクリプトはGroovyで記述 DSLによるシンプルかつ可読性の高いビルド定義 条件分岐や繰り返しなど、任意の処理をGroovyで実行可能 6 http://gradle.org/
7.
要するにGradleとは? 7 Mavenのように 規約によるビルドで効率的に記述でき、 Antのように プロジェクト特有の事情に柔軟に対応でき、 Makeのように スクリプトのパワーを活かしたビルドが実現できる クロスプラットフォーム対応次世代ビルドツール
8.
ビルドツールの進化 8 パラダイム ビルド定義 スクリプト XML 手続き的 規約によるビルド Make Ant Maven Gradle
9.
ビルドツールの進化: epoch1 9 パラダイム ビルド定義 スクリプト XML 手続き的 規約によるビルド Make Ant
Maven Gradle 元祖ビルドツール
10.
ビルドツールの進化: epoch2 10 パラダイム ビルド定義 スクリプト XML 手続き的 規約によるビルド Make Ant
Maven Gradle JavaとXMLにより クロスプラットフォーム対応を実現
11.
ビルドツールの進化: epoch3 11 パラダイム ビルド定義 スクリプト XML 手続き的 規約によるビルド Make Ant
Maven Gradle ビルドに 「ドメインモデル(POM)」と 「依存性管理」を導入
12.
ビルドツールの進化: epoch4 12 パラダイム ビルド定義 スクリプト XML 手続き的 規約によるビルド Make Ant
Maven Gradle ビルドを「言語内DSL」で記述 ドメインモデルをスクリプトで直接操作
13.
Gradleのビルドスクリプト(例) 13 apply plugin: 'java' repositories
{ mavenCentral() } dependencies { compile ‘org.slf4j:slf4j-api:1.7.5’ testCompile ‘junit:junit:4.11’ } Javaプラグインを適用 依存性解決に Maven Centralを利用 プロダクトコードの依存ライブラリ テストコードの依存ライブラリ
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 以下にクラスを生成したい
17.
規約に合わないプロジェクトへの対応 以下のようにしてカスタマイズ可能 17 [build.gradle] sourceSets.main.output.classesDir = ‘src/main/webapp/WEB-INF/classes’
18.
マルチプロジェクト 複数プロジェクト(サブプロジェクト)から構成さ れるプロジェクトのビルドを定義 サブプロジェクト間の依存関係を定義可能
依存関係を考慮してビルドを行う サブプロジェクトに共通する処理や設定の一 元化が可能 Gradleのkiller featureの一つ Hibernate Gradle自身のビルド 18 ⇒詳細は「基礎編」で!
19.
Gradleラッパー Gradleの個別導入を不要に JDKさえ導入されていれば、Gradleを自動でイン ストールして実行してくれる仕組み
環境構築の手間を削減し、利用の敷居を下げる Gradleラッパーは以下の用途で有効 JenkinsなどのCI環境での利用 開発者の環境構築負荷軽減 利用するGradleのバージョン統一 19
20.
Gradleラッパー 20 Gradle導入済の環境で"gradle wrapper"を実行 すると、Gradleのブートストラップが生成される バージョン管理 システム等 Gradle 未導入環境 “gradlew <task>”を実行すると、 Gradleが自動的に導入される 登録 取得 Gradle バイナリ (zip) 自動DL
/ 環境設定
21.
g Gradleデーモン Gradleのプロセスを常駐し、起動を高速化 起動
gradle --daemon <task> 停止 gradle --stop デフォルトでdaemonを使う場合 export GRADLE_OPTS= “-Dorg.gradle.daemon=true” もしくは gradle.properties に org.gradle.daemon=true を追加 21
22.
AntからGradleへの移行容易性 Gradleは既存のAnt資産を活用できる Antのbuild.xmlをそのまま読み込んで実行可能
AntタスクをGradleから直接利用可能 AntタスクとGradleタスクを共存することも可能 相互に依存するタスクも定義できる AntタスクをGradleから拡張することもできる Gradleは「Better Ant」としても使える Mavenとの大きな違い Antから段階的にGradleへ移行できる 22 ⇒詳細は「発展編」で!
23.
Gradleの普及状況 SpringやHibernateなど多数のOSSで採用 23
24.
Androidのビルドに採用 24 http://www.gradleware.com/resources/tech/android
25.
ビルドツール動向 25 http://zeroturnaround.com/rebellabs/java-build-tools-part-2-a- decision-Makers-comparison-of-maven-gradle-and-ant-ivy/
26.
26 Gradleの利用方法
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
28.
動作確認 gradle -v 28 GVMでインストールした場合は
~/.gvm/gradle/<version> 以下に導入され、 ~/.gvm/gradle/current にシンボリックリンクが作成されます
29.
Hello Gradle 適当なディレクトリを作成し、カレントを移動
以下の内容で”build.gradle”を作成 “gradle hello” を実行 29 task hello << { println 'Hello Gradle world!' }
30.
Hello Gradle解説 30 task hello
<< { println 'Hello Gradle world!' } タスクの定義 タスクにクロージャを追加 ※ leftShift()の省略記法 Groovyのprintln = JavaのSystem.out.println()
31.
実行可能タスクの確認 gradle tasks 31
32.
32 参考情報
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
34.
Gradle Plugins 34 http://aalmiray.github.io/gradle-plugins/
35.
Gradleロードマップ 2014/4/30時点での最新は1.12 1.xは1.12で最後、次のリリースは2.0
http://forums.gradle.org/gradle/topics/aft er_1_12_comes_2_0 最近の重点強化点 依存関係管理をより柔軟・緻密に ビルドのパラレル化 IDE連携強化 ネィティブ(C言語系)ビルド対応 35
36.
以上、導入編でした 36 引き続き 「基礎編」 を お楽しみください
Download