Submit Search
Jjug 20140430 gradle_basic
15 likes
8,716 views
Takuma Watabiki
2014/4/30 JJUGナイトセミナーでの資料です。
Software
Read more
1 of 35
Download now
Downloaded 29 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
More Related Content
PDF
Gradleどうでしょう
Takuma Watabiki
PPTX
Jjug 20140430 gradle_advanced
Masatoshi Hayashi
PDF
Gradle handson
Nemoto Yusuke
PDF
Spring in-summer-gradle-hands on-withanswers
Takuma Watabiki
PDF
OSS Product feat. Gradle
Yasuharu Nakano
PDF
システム開発を前進させるためのGradle導入法
Takuma Watabiki
PDF
Gws 20141024 gradle_intro
Nobuhiro Sue
PDF
Introduction to Spock
Takahiro Sugiura
Gradleどうでしょう
Takuma Watabiki
Jjug 20140430 gradle_advanced
Masatoshi Hayashi
Gradle handson
Nemoto Yusuke
Spring in-summer-gradle-hands on-withanswers
Takuma Watabiki
OSS Product feat. Gradle
Yasuharu Nakano
システム開発を前進させるためのGradle導入法
Takuma Watabiki
Gws 20141024 gradle_intro
Nobuhiro Sue
Introduction to Spock
Takahiro Sugiura
What's hot
(20)
PPTX
Gradle入門
orekyuu
PDF
Gradle布教活動
Nemoto Yusuke
PDF
明日から使えるgradle
kimukou_26 Kimukou
PPTX
Jenkins と groovy
Kohsuke Kawaguchi
PDF
Java開発の強力な相棒として今すぐ使えるGroovy
Yasuharu Nakano
PPT
第5回勉強会
Mugen Fujii
PDF
Gws 20130315 gradle_handson
Nobuhiro Sue
PDF
Groovy base gradle_20130309
Nobuhiro Sue
PDF
Cryogenでサイトつくろーじぇん
Kazuhiro Hara
PDF
Groovyの紹介20130323
Yasuharu Hayami
PDF
(IDEユーザのための) ClojureのEmacs開発環境について
Kazuhiro Hara
PDF
Gws 20120521 gradle
Nobuhiro Sue
PDF
What makes Geb groovy?
Youtarou TAKAHASHI
PDF
20150131_jQueryのようにWebテストが書けるGeb Navigator APIの紹介
Yuki Fujisawa
PPT
第4回勉強会 Groovyの文法からSpockまで
Mugen Fujii
PDF
Use JWT access-token on Grails REST API
Uehara Junji
PPTX
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
Nobuhiro Sue
PDF
Grails 2.0.0.M1の話
Tsuyoshi Yamamoto
PPTX
Webアプリのシナリオテスト自動化を運用に乗せるまでの10のステップ
Naoki Iwami
PPTX
Jenkins勉強会 in 札幌 第二部
cactusman
Gradle入門
orekyuu
Gradle布教活動
Nemoto Yusuke
明日から使えるgradle
kimukou_26 Kimukou
Jenkins と groovy
Kohsuke Kawaguchi
Java開発の強力な相棒として今すぐ使えるGroovy
Yasuharu Nakano
第5回勉強会
Mugen Fujii
Gws 20130315 gradle_handson
Nobuhiro Sue
Groovy base gradle_20130309
Nobuhiro Sue
Cryogenでサイトつくろーじぇん
Kazuhiro Hara
Groovyの紹介20130323
Yasuharu Hayami
(IDEユーザのための) ClojureのEmacs開発環境について
Kazuhiro Hara
Gws 20120521 gradle
Nobuhiro Sue
What makes Geb groovy?
Youtarou TAKAHASHI
20150131_jQueryのようにWebテストが書けるGeb Navigator APIの紹介
Yuki Fujisawa
第4回勉強会 Groovyの文法からSpockまで
Mugen Fujii
Use JWT access-token on Grails REST API
Uehara Junji
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
Nobuhiro Sue
Grails 2.0.0.M1の話
Tsuyoshi Yamamoto
Webアプリのシナリオテスト自動化を運用に乗せるまでの10のステップ
Naoki Iwami
Jenkins勉強会 in 札幌 第二部
cactusman
Ad
Similar to Jjug 20140430 gradle_basic
(20)
PDF
Gradle a new Generation Build Tool
Shinya Mochida
PDF
Agileツール適合化分科会(構成管理・ビルドツール)
masanori kataoka
PPTX
[社内勉強会]Gradleを使おう
hirooooo
PDF
Jjug 20140430 gradle_intro
Nobuhiro Sue
PDF
Androidアプリ開発で活躍必至!? ビルドツールGradle
amayaw9
PPTX
Gradle再入門.pptx
Tomoyo Takayama
PDF
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
Makoto Yamazaki
PDF
Grailsのススメ(仮)
Tsuyoshi Yamamoto
PDF
Groovy Grails eXchage 2014 報告
Tsuyoshi Yamamoto
PDF
Android App Development with Gradle & Android Studio
Soichiro Kashima
PDF
Javaな人が今すぐ使えるG*
irof N
PDF
G* Workshop in Fukuoka - Introduction
Kazuchika Sekiya
PDF
Read Groovy Compile process(Groovy Benkyoukai 2013)
Uehara Junji
PDF
Groovy kisobenkyoukai20130309
Uehara Junji
PDF
Jenkins plugin memo
Kiyotaka Oku
PPT
Maven2 plugin
Funato Takashi
PDF
Android アプリ開発における Gradle ビルドシステム
Yu Nobuoka
PDF
gradle2.4のルールベースモデルコンフィギュレーション
Shinya Mochida
PDF
GradleによるG*なビルドシステムの構築
Masatoshi Hayashi
PDF
TDD勉強会キックオフ for Java
Yuta Kawadai
Gradle a new Generation Build Tool
Shinya Mochida
Agileツール適合化分科会(構成管理・ビルドツール)
masanori kataoka
[社内勉強会]Gradleを使おう
hirooooo
Jjug 20140430 gradle_intro
Nobuhiro Sue
Androidアプリ開発で活躍必至!? ビルドツールGradle
amayaw9
Gradle再入門.pptx
Tomoyo Takayama
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
Makoto Yamazaki
Grailsのススメ(仮)
Tsuyoshi Yamamoto
Groovy Grails eXchage 2014 報告
Tsuyoshi Yamamoto
Android App Development with Gradle & Android Studio
Soichiro Kashima
Javaな人が今すぐ使えるG*
irof N
G* Workshop in Fukuoka - Introduction
Kazuchika Sekiya
Read Groovy Compile process(Groovy Benkyoukai 2013)
Uehara Junji
Groovy kisobenkyoukai20130309
Uehara Junji
Jenkins plugin memo
Kiyotaka Oku
Maven2 plugin
Funato Takashi
Android アプリ開発における Gradle ビルドシステム
Yu Nobuoka
gradle2.4のルールベースモデルコンフィギュレーション
Shinya Mochida
GradleによるG*なビルドシステムの構築
Masatoshi Hayashi
TDD勉強会キックオフ for Java
Yuta Kawadai
Ad
More from Takuma Watabiki
(13)
PDF
「普通の設計」をするということ
Takuma Watabiki
PDF
バックエンドのエンジニアがiOSアプリ開発をやってみて思うこと - フロントエンドのアーキテクチャの考察 -
Takuma Watabiki
PDF
『現場で役立つシステム設計の原則』は一般的なSI現場で役立つのか?
Takuma Watabiki
PDF
Grailsでドメイン駆動設計を実践する時の勘所
Takuma Watabiki
PDF
JGGUG Community LT 2016
Takuma Watabiki
PDF
Spock's world
Takuma Watabiki
PDF
スーパー戦隊進化論
Takuma Watabiki
KEY
Gws in fukuoka
Takuma Watabiki
PDF
Devsumi2012 JGGUG LT
Takuma Watabiki
PDF
Spockを使おう!
Takuma Watabiki
PDF
G*Magazineを読もう
Takuma Watabiki
PDF
G*におけるソフトウェアテスト・シーズンIII
Takuma Watabiki
PDF
Groovyノススメ
Takuma Watabiki
「普通の設計」をするということ
Takuma Watabiki
バックエンドのエンジニアがiOSアプリ開発をやってみて思うこと - フロントエンドのアーキテクチャの考察 -
Takuma Watabiki
『現場で役立つシステム設計の原則』は一般的なSI現場で役立つのか?
Takuma Watabiki
Grailsでドメイン駆動設計を実践する時の勘所
Takuma Watabiki
JGGUG Community LT 2016
Takuma Watabiki
Spock's world
Takuma Watabiki
スーパー戦隊進化論
Takuma Watabiki
Gws in fukuoka
Takuma Watabiki
Devsumi2012 JGGUG LT
Takuma Watabiki
Spockを使おう!
Takuma Watabiki
G*Magazineを読もう
Takuma Watabiki
G*におけるソフトウェアテスト・シーズンIII
Takuma Watabiki
Groovyノススメ
Takuma Watabiki
Jjug 20140430 gradle_basic
1.
2014.04.30 綿引琢磨(@bikisuke) http://d.hatena.ne.jp/bikisuke/ takuma.watabiki@jggug.org 2時間で分かる! 次世代ビルドツールの本命Gradleの 全貌 ∼基礎編∼
2.
2 自己紹介 綿引 琢磨(わたびき
たくま) Twitter: @bikisuke https://www.facebook.com/takuma.watabiki.3 株式会社デライトテクノロジーズ代表取締役 日本Grails/Groovyユーザーグループ運営委員 最近興味を持っているもの Spring Boot / TERASOLUNA Global Framework もちろんG* (ry Gradle本 (執筆中)
3.
基礎編 目次 Gradleの基礎
Gradleのアーキテクチャ Gradleの三大要素 Java プロジェクト with Gradle Java プロジェクトの生成 Java プラグインによるビルド マルチプロジェクト with Gradle マルチプロジェクトへの適用 ビルドスクリプトの定義 3
4.
4 Gradleの基礎
5.
Gradle のアーキテクチャ 自動化のための基盤とプラグイン機構による 粗結合な構造
自動化のためのインフラとドメインオブジェクト群 基盤だけでは何も出来ないに等しい 直感的なドメインオブジェクトAPI 強力なプラグイン機構 標準的な機能も全てがプラグイン シンプルなインタフェースで追加が容易 既存のプラグインの拡張や統合も可能 5
6.
Gradle のアーキテクチャ 6 Java JVM Groovy OSS
ライブラリ Gradle コアライブラリ Gradle 標準プラグイン サードパーティ/オレオレ プラグイン ビルドスクリプト Gradle
7.
Gradleの三大要素 プロジェクト 処理対象を表すコアドメイン
必ず1つ以上のプロジェクトが存在 タスク 作業単位を表すコアドメイン ユーザーが実行できる最小単位 プラグイン 特定処理のための機能コンポーネント タスク、プロパティ、規約などをパッケージング 7
8.
apply plugin: 'java' repositories
{ mavenCentral() } dependencies { testCompile 'junit:junit:4.11' } task myTest(type:Test) << { println 'myTest task executed.' } DSLとドメインオブジェクトの関係 8 ビルドスクリプトに定義した内容が、 処理対象のProjectオブジェクトとなる
9.
apply plugin: 'java' repositories
{ mavenCentral() } dependencies { testCompile 'junit:junit:4.11' } task myTest(type:Test) << { println 'myTest task executed.' } DSLとドメインオブジェクトの関係 9 JavaPluginが適用されることで、Javaのビルド に必要な機能がProjectに追加される
10.
apply plugin: 'java' repositories
{ mavenCentral() } dependencies { testCompile 'junit:junit:4.11' } task myTest(type:Test) << { println 'myTest task executed.' } DSLとドメインオブジェクトの関係 10 JavaPluginにより追加された Testタスクを拡張
11.
11 Javaプロジェクト with Gradle
12.
Javaプロジェクトの生成 init タスク(Build
Init プラグイン) 指定された初期化タイプの雛形を生成 basic : ビルドスクリプト、Gradleラッパーを生成 pom : pom.xmlを基にビルドスクリプト、Gradleラッパーを生成 java-library : basic + Java規約ディレクトリ生成 groovy-library : basic + Groovy規約ディレクトリ生成 scala-library : basic + Scala規約ディレクトリ生成 ※ 現在試験的なステータスの機能です 12 gradle init --type <初期化タイプ>
13.
Javaプラグインによるビルド Java プラグインとは
Javaプロジェクトのコンパイル、テスト、アーカイブに 必要なタスク、プロパティ、規約などを提供 ソースセット: src/main/java, src/main/resources, src/test/java, src/test/resources タスク: clean, compileJava, test, jar など プロパティ: sourceSets, sourceCompatibility, reportsDir, testReportDir, archivesBaseName など 13
14.
ビルドのタスクグラフ 14
15.
ビルドのタスクグラフ 15 gradle build
16.
ビルドのタスクグラフ 16 src/main/java配下のjavaコード をコンパイルし、$buildDir/classes/ mainに出力
17.
ビルドのタスクグラフ 17 src/main/resoueces配下の ファイルを$buildDir/resources/ mainにコピー
18.
ビルドのタスクグラフ 18 src/test/java配下のjavaコード をコンパイルし、$buildDir/classes/ testに出力
19.
ビルドのタスクグラフ 19 src/test/resoueces配下のファ イルを$buildDir/resources/testに コピー
20.
ビルドのタスクグラフ 20 $buildDir/libsに JARファイルを生成
21.
ビルドのタスクグラフ 21 JUnit(xUnit)/TestNGを実行
22.
ビルドのタスクグラフ 22 BUILD SUCCESS!
23.
Javaのビルドでよく使用するプロパティ 23 タスク プロパティ 用途 compileJava/ compileTestJava options エンコーディングやブートクラスパスなどのコンパ イルオプションを追加する際に使用 jar
archiveName JARファイル名を設定する際に使用 test minHeapSize テストプロセスに-Xmsを設定する際に使用 test maxHeapSize テストプロセスに-Xmxを設定する際に使用test jvmArgs ヒープ以外のJVMパラメータを設定する際に使用 - sourceCompatibility コンパイル時に使用するJavaのバージョン - targetCompatibility クラス生成時のターゲットとするJavaのバージョン
24.
apply plugin: 'java' : def
defaultEncoding = 'UTF-8' [compileJava, compileTestJava]*.options*.encoding = defaultEncoding sourceCompatibility = 1.7 targetCompatibility = 1.7 jar { archiveName = 'jjug-night-seminar' } test { minHeapSize = '512m' maxHeapSize = '512m' jvmArgs '-XX:MaxPermSize=256m' } ビルドスクリプトでの設定例 24
25.
25 マルチプロジェクト with Gradle
26.
マルチプロジェクトへの適用 基点となるルートプロジェクトに、サブプロジ ェクトがツリー構造を成す デフォルトではsettings.gradleが配置されたディレクト リがルートプロジェクトとなる
settings.gradleにサブプロジェクト構成を定義 Gradleがサポートするレイアウトは以下の2つ 階層レイアウト フラットレイアウト 26
27.
マルチプロジェクトへの適用 階層レイアウト 階層的な構造のプロジェクトで構成される
settings.gradle 27 include ‘jonathan’, ‘george’, ‘joseph’ <ROOT_PROJECT> ├ jonathan ├ george ├ joseph ! ├ settings.gradle " build.gradle
28.
マルチプロジェクトへの適用 フラットレイアウト 同一階層のプロジェクトで構成される
settings.gradle 28 includeFlat ‘giorno’, ‘bucciarati’, ‘mista’ <WORKSPACE> ├ <ROOT_PROJECT> ! ├ settings.gradle ! " build.gradle ├ giorno ├ bucciarati " mista
29.
レイアウトの特徴 レイアウトはルートプロジェクトとサブプロ ジェクトの位置関係で決まる ルートプロジェクトがサブプロジェクトの上位階層
階層レイアウト ルートプロジェクトとサブプロジェクトが同一階層 フラットレイアウト レイアウトはプロジェクト単位のため、組み合わせる ことも可能 29
30.
ビルドスクリプトの定義 ルートプロジェクトに集約 30 subprojects { task
showName << { println “$project.name” } } project(‘:jonathan’) { dependencies { compile project(‘: george’) } } project(‘:george’) { dependencies { compile project(‘: joseph’) } } project(‘:joseph’) { }
31.
ビルドスクリプトの定義 ルートプロジェクトに共通設定&差分個別 31 subprojects { task
showName() << { println “$name” } } root/build.gradle project(‘:jonathan’) { dependencies { compile project(‘:george’) } } jonathan/build.gradle project(‘:george’) { dependencies { compile project(‘: joseph’) } } george/build.gradle
32.
ビルドスクリプトの定義 個別に定義 32 task showName()
<< { println “$name” } joseph/build.gradle dependencies { compile project(‘:george’) } task showName() << { println “$name” } jonathan/build.gradle dependencies { compile project(‘: joseph’) } task showName() << { println “$name” } george/build.gradle
33.
マルチプロジェクトの勘所 レイアウトについて 特定のシステムやサービスの中で使用することが明ら かな場合は階層レイアウトが良い
他システムでも使用するもの、汎用的なライブラリは フラットレイアウトもしくは単一のプロジェクトとし ておいた方が柔軟に対応できる 33
34.
マルチプロジェクトの勘所 ビルドスクリプトについて 基本はルートプロジェクトに共通設定を定義して、差 分を個別のサブプロジェクトに定義するのが定石
サブプロジェクトの数が少ない場合や、選任のビルド 職人がいる場合は、ルートプロジェクトに集約すると 効率が良いかも 複数ベンダーで開発するような場合は、個別に定義し た方が平和に治まることもある 34
35.
以上、基礎編でした 35 休憩の後は ∼発展編∼ を お楽しみください
Download