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
Submit search
EN
Uploaded by
Takuma Watabiki
17,243 views
Gradleどうでしょう
G*ワークショップ Z 札幌 2014 のスライドです。 某書の抜粋的な何かです。
Software
◦
Read more
39
Save
Share
Embed
Embed presentation
Download
Downloaded 55 times
1
/ 46
2
/ 46
3
/ 46
4
/ 46
5
/ 46
6
/ 46
7
/ 46
8
/ 46
9
/ 46
10
/ 46
11
/ 46
12
/ 46
13
/ 46
14
/ 46
15
/ 46
16
/ 46
17
/ 46
18
/ 46
19
/ 46
20
/ 46
21
/ 46
22
/ 46
23
/ 46
24
/ 46
25
/ 46
26
/ 46
27
/ 46
28
/ 46
29
/ 46
30
/ 46
31
/ 46
32
/ 46
33
/ 46
34
/ 46
35
/ 46
36
/ 46
37
/ 46
38
/ 46
39
/ 46
40
/ 46
41
/ 46
42
/ 46
43
/ 46
44
/ 46
45
/ 46
46
/ 46
More Related Content
PDF
Introduction to Spock
by
Takahiro Sugiura
PDF
Jjug 20140430 gradle_basic
by
Takuma Watabiki
PDF
Gradle handson
by
Nemoto Yusuke
PDF
Gradle布教活動
by
Nemoto Yusuke
PPTX
Jjug 20140430 gradle_advanced
by
Masatoshi Hayashi
PDF
Spring in-summer-gradle-hands on-withanswers
by
Takuma Watabiki
PDF
OSS Product feat. Gradle
by
Yasuharu Nakano
PDF
Gws 20141024 gradle_intro
by
Nobuhiro Sue
Introduction to Spock
by
Takahiro Sugiura
Jjug 20140430 gradle_basic
by
Takuma Watabiki
Gradle handson
by
Nemoto Yusuke
Gradle布教活動
by
Nemoto Yusuke
Jjug 20140430 gradle_advanced
by
Masatoshi Hayashi
Spring in-summer-gradle-hands on-withanswers
by
Takuma Watabiki
OSS Product feat. Gradle
by
Yasuharu Nakano
Gws 20141024 gradle_intro
by
Nobuhiro Sue
What's hot
PPTX
JJUG CCC 2017 Spring Seasar2からSpringへ移行した俺たちのアプリケーションがマイクロサービスアーキテクチャへ歩み始めた
by
Koichi Sakata
PPTX
Gradle入門
by
orekyuu
PDF
明日から使えるgradle
by
kimukou_26 Kimukou
PPT
第4回勉強会 Groovyの文法からSpockまで
by
Mugen Fujii
PPTX
Jenkins と groovy
by
Kohsuke Kawaguchi
PDF
Java開発の強力な相棒として今すぐ使えるGroovy
by
Yasuharu Nakano
PDF
プログラミング言語Clojureのニャンパスでの活用事例
by
sohta
PDF
ClojureでElectronアプリを作ろう
by
Kazuhiro Hara
PDF
(IDEユーザのための) ClojureのEmacs開発環境について
by
Kazuhiro Hara
PDF
JobStreamerではじめるJavaBatchのクラウド分散実行
by
Yoshitaka Kawashima
PDF
システム開発を前進させるためのGradle導入法
by
Takuma Watabiki
PDF
Grails 3.0先取り!? Spring Boot入門ハンズオン #jggug_boot
by
Toshiaki Maki
PDF
Grails 2.0.0.M1の話
by
Tsuyoshi Yamamoto
PDF
今すぐブラウザでES6を使おう
by
Hayashi Yuichi
PPT
第5回勉強会
by
Mugen Fujii
PDF
Gradle a new Generation Build Tool
by
Shinya Mochida
PDF
20150131_jQueryのようにWebテストが書けるGeb Navigator APIの紹介
by
Yuki Fujisawa
PDF
What makes Geb groovy?
by
Youtarou TAKAHASHI
PDF
SwaggerとAPIのデザイン
by
Kazuhiro Hara
PPTX
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
by
Nobuhiro Sue
JJUG CCC 2017 Spring Seasar2からSpringへ移行した俺たちのアプリケーションがマイクロサービスアーキテクチャへ歩み始めた
by
Koichi Sakata
Gradle入門
by
orekyuu
明日から使えるgradle
by
kimukou_26 Kimukou
第4回勉強会 Groovyの文法からSpockまで
by
Mugen Fujii
Jenkins と groovy
by
Kohsuke Kawaguchi
Java開発の強力な相棒として今すぐ使えるGroovy
by
Yasuharu Nakano
プログラミング言語Clojureのニャンパスでの活用事例
by
sohta
ClojureでElectronアプリを作ろう
by
Kazuhiro Hara
(IDEユーザのための) ClojureのEmacs開発環境について
by
Kazuhiro Hara
JobStreamerではじめるJavaBatchのクラウド分散実行
by
Yoshitaka Kawashima
システム開発を前進させるためのGradle導入法
by
Takuma Watabiki
Grails 3.0先取り!? Spring Boot入門ハンズオン #jggug_boot
by
Toshiaki Maki
Grails 2.0.0.M1の話
by
Tsuyoshi Yamamoto
今すぐブラウザでES6を使おう
by
Hayashi Yuichi
第5回勉強会
by
Mugen Fujii
Gradle a new Generation Build Tool
by
Shinya Mochida
20150131_jQueryのようにWebテストが書けるGeb Navigator APIの紹介
by
Yuki Fujisawa
What makes Geb groovy?
by
Youtarou TAKAHASHI
SwaggerとAPIのデザイン
by
Kazuhiro Hara
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
by
Nobuhiro Sue
Similar to Gradleどうでしょう
PPTX
Gradle再入門.pptx
by
Tomoyo Takayama
PPTX
[社内勉強会]Gradleを使おう
by
hirooooo
PDF
Android アプリ開発における Gradle ビルドシステム
by
Yu Nobuoka
PDF
Groovy kisobenkyoukai20130309
by
Uehara Junji
PDF
TDD勉強会キックオフ for Java
by
Yuta Kawadai
PDF
Gws 20130315 gradle_handson
by
Nobuhiro Sue
PDF
Groovy base gradle_20130309
by
Nobuhiro Sue
PDF
Gws 20120521 gradle
by
Nobuhiro Sue
PDF
Jenkins plugin memo
by
Kiyotaka Oku
PDF
Grailsのススメ(仮)
by
Tsuyoshi Yamamoto
PDF
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
by
Makoto Yamazaki
PDF
Agileツール適合化分科会(構成管理・ビルドツール)
by
masanori kataoka
PDF
Javaな人が今すぐ使えるG*
by
irof N
PDF
Xtext And Grails20091218
by
Akira Tanaka
PDF
Android App Development with Gradle & Android Studio
by
Soichiro Kashima
KEY
G* Workshop in fukuoka 20120901
by
Uehara Junji
PDF
G* Workshop in Fukuoka - Introduction
by
Kazuchika Sekiya
PDF
groovy 2.1.0 20130118
by
Uehara Junji
PDF
Androidアプリ開発で活躍必至!? ビルドツールGradle
by
amayaw9
PDF
Read Groovy Compile process(Groovy Benkyoukai 2013)
by
Uehara Junji
Gradle再入門.pptx
by
Tomoyo Takayama
[社内勉強会]Gradleを使おう
by
hirooooo
Android アプリ開発における Gradle ビルドシステム
by
Yu Nobuoka
Groovy kisobenkyoukai20130309
by
Uehara Junji
TDD勉強会キックオフ for Java
by
Yuta Kawadai
Gws 20130315 gradle_handson
by
Nobuhiro Sue
Groovy base gradle_20130309
by
Nobuhiro Sue
Gws 20120521 gradle
by
Nobuhiro Sue
Jenkins plugin memo
by
Kiyotaka Oku
Grailsのススメ(仮)
by
Tsuyoshi Yamamoto
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
by
Makoto Yamazaki
Agileツール適合化分科会(構成管理・ビルドツール)
by
masanori kataoka
Javaな人が今すぐ使えるG*
by
irof N
Xtext And Grails20091218
by
Akira Tanaka
Android App Development with Gradle & Android Studio
by
Soichiro Kashima
G* Workshop in fukuoka 20120901
by
Uehara Junji
G* Workshop in Fukuoka - Introduction
by
Kazuchika Sekiya
groovy 2.1.0 20130118
by
Uehara Junji
Androidアプリ開発で活躍必至!? ビルドツールGradle
by
amayaw9
Read Groovy Compile process(Groovy Benkyoukai 2013)
by
Uehara Junji
More from Takuma Watabiki
PDF
Grailsでドメイン駆動設計を実践する時の勘所
by
Takuma Watabiki
PDF
バックエンドのエンジニアがiOSアプリ開発をやってみて思うこと - フロントエンドのアーキテクチャの考察 -
by
Takuma Watabiki
PDF
スーパー戦隊進化論
by
Takuma Watabiki
PDF
Spock's world
by
Takuma Watabiki
KEY
Gws in fukuoka
by
Takuma Watabiki
PDF
G*におけるソフトウェアテスト・シーズンIII
by
Takuma Watabiki
PDF
Groovyノススメ
by
Takuma Watabiki
PDF
G*Magazineを読もう
by
Takuma Watabiki
PDF
JGGUG Community LT 2016
by
Takuma Watabiki
PDF
Devsumi2012 JGGUG LT
by
Takuma Watabiki
PDF
Spockを使おう!
by
Takuma Watabiki
PDF
『現場で役立つシステム設計の原則』は一般的なSI現場で役立つのか?
by
Takuma Watabiki
PDF
「普通の設計」をするということ
by
Takuma Watabiki
Grailsでドメイン駆動設計を実践する時の勘所
by
Takuma Watabiki
バックエンドのエンジニアがiOSアプリ開発をやってみて思うこと - フロントエンドのアーキテクチャの考察 -
by
Takuma Watabiki
スーパー戦隊進化論
by
Takuma Watabiki
Spock's world
by
Takuma Watabiki
Gws in fukuoka
by
Takuma Watabiki
G*におけるソフトウェアテスト・シーズンIII
by
Takuma Watabiki
Groovyノススメ
by
Takuma Watabiki
G*Magazineを読もう
by
Takuma Watabiki
JGGUG Community LT 2016
by
Takuma Watabiki
Devsumi2012 JGGUG LT
by
Takuma Watabiki
Spockを使おう!
by
Takuma Watabiki
『現場で役立つシステム設計の原則』は一般的なSI現場で役立つのか?
by
Takuma Watabiki
「普通の設計」をするということ
by
Takuma Watabiki
Gradleどうでしょう
1.
Gradleどうでしょう G*workshop Z
sapporo 2014 2014/09/27
2.
自己紹介 •綿引 琢磨(わたびき
たくま) •株式会社デライトテクノロジーズ 代表取締役 •日本Grails/Groovyユーザーグループ 運営委員 •twitter : @bikisuke
3.
すいません、間に合いませんでした... •「Gradle徹底入門(仮)」(翔泳社) •@masanobuimai,
@nobusue, @literalice, @bikisuke の共著 •Gradle2.0ベース(Gradle2.1トピック有) •500ページ超の手頃な鈍器 •2014年11月刊行予定(たぶん...)
4.
今日は刊行より一足先に Gradle徹底入門 を旅することにします。
5.
とはいえ、、、さすがに 全部はできないので 抜粋してお送りします。
6.
本日のアジェンダ • スタートアップGradle
• Javaプロジェクトのビルド • Gradleの基礎 • Gradleでのテスト
7.
スタートアップGradle
8.
Gradleとは • OSSのビルドツール
• 他のビルドツールより優れてる(点が多い) • GroovyベースのDSLで柔軟性が高い • 拡張しやすいアーキテクチャを採用 • 最新バージョンは 2.1(2014年9月時点)
9.
なぜGradleなのか? • ビルドスクリプトがシンプル
• プラグインが作りやすい • 既存のツールの資産を活用できる • Maven Central リポジトリを参照可能 • いろんな言語に対応(中) • Android の公式ビルドツールとして採用 • ここ最近は C/C++ にも力を入れている
10.
ビルドツール比較 make Ant
Maven Gradle ビルド定義 パラダイム 強み 弱み スクリプトXML XML スクリプト 手続き的手続き的規約ベース規約ベース 非常にコンパクト基本機能がシンプル クロスプラットフォーム 規約による標準化 依存関係管理 規約による標準化 依存関係管理 高い柔軟性/拡張性 移植性問題 依存関係管理なし 規約無く再利用に難有り 依存関係管理なし 定義ファイルの柔軟性 規約外の場合が困難 定義ファイルの柔軟性IDE連携にやや難有り
11.
Gradleのインストール • 前提条件:
JDK6以上 • Mac/Unix系:GVMが便利 • http://gvmtool.net/ • $ gvm install gradle • Windows: 公式サイトからダウンロード • http://www.gradle.org/downloads • ZIP解凍して、環境変数Pathに <GRADLE_HOME>bin
12.
Hello, Gradle! //
build.gradle task hello << { println ‘Hello, Gradle!’ }
13.
Build Initプラグイン を使ってみる(1/2)
• Gradle標準プラグインのひとつ • ビルドプロジェクトの雛形を生成 • basic: ビルドスクリプト、Gradleラッパーを生成 • pom: pom.xml からビルドスクリプト、Gradleラッパーを生成 • java-library: basic + Java規約ディレクトリを生成 • groovy-library: basic + Groovy規約ディレクトリを生成 • scala-library: basic + Scala規約ディレクトリを生成
14.
Build Initプラグイン を使ってみる(2/2)
$ gradle init --type java-library : $ gradle build
15.
Javaプロジェクト のビルド
16.
Javaプラグイン •Javaプロジェクトのコンパイル、テスト、 アーカイブに必要なタスク、プロパティ、
規約などを提供 • ソースセット: src/main/java, src/main/resources, src/test/java, src/test/resources • タスク: clean, compileJava, test, jar など • プロパティ: sourceSets, sourceCompatibility, reportsDir, testReportDir, archivesBaseName など
17.
Javaプラグインのタスク
18.
Javaのビルドでよく使用するプロパティ タスクプロパティ用途 compileJava/
compileTestJava options エンコーディングやブートクラスパスなどのコンパ イルオプションを追加する際に使用 jar archiveName JARファイル名を設定する際に使用 test minHeapSize テストプロセスに-Xmsを設定する際に使用 tteesstt maxHeapSize テストプロセスに-Xmxを設定する際に使用 jvmArgs ヒープ以外のJVMパラメータを設定する際に使用 - sourceCompatibility コンパイル時に使用するJavaのバージョン - targetCompatibility クラス生成時のターゲットとするJavaのバージョン
19.
Javaプロジェクトの ビルドスクリプト定義例 apply
plugin: 'java' // Gradle 2.0 def defaultEncoding = 'UTF-8' [compileJava, compileTestJava]*.options*.encoding = defaultEncoding sourceCompatibility = 1.7 targetCompatibility = 1.7 jar { archiveName = 'gws-sapporo.jar' } test { minHeapSize = '512m' maxHeapSize = '512m' jvmArgs '-XX:MaxPermSize=256m' }
20.
Applicationプラグイン を使ってみる(1/2) //
Gradle 2.1 plugins { id ‘application’ } mainClassName = 'com.example.Main'
21.
Applicationプラグイン を使ってみる(2/2) $
gradle run
22.
Gradleの基礎
23.
Gradleのアーキテクチャ ビルドスクリプト サードパーティ/コミュニティ(野良)
プラグイン Gradle 標準プラグイン Gradle コアライブラリ Groovy OSS ライブラリ Java JavaVM
24.
Gradleのアーキテクチャ ビルドスクリプト サードパーティ/コミュニティ(野良)
プラグイン Gradle 標準プラグイン Gradle コアライブラリ Groovy OSS ライブラリ Java JavaVM Gradle
25.
ビルドの入力情報
26.
ビルドの入力情報
27.
初期化スクリプト • ビルドの最初で実行されるGroovyスクリプト
• 主にユーザー情報や実行環境などの初期設定 を行うために使用 • デフォルトは init.gradle • -I (--init-script) <FILE_NAME> でもOK
28.
設定スクリプト • ビルド対象のプロジェクトの設定を行う
Groovyスクリプト • 主にビルドに参加するプロジェクトを定義す る用途で使用 • デフォルトは settings.gradle • -c (--settings-file) <FILE_NAME> でもOK
29.
ビルドスクリプト • ビルドの定義を記述するスクリプトファイル
• ビルド対象がシンプルなものであれば、 このファイル1つあればOK • デフォルトは build.gradle • -b (--build-file) <FILE_NAME> でもOK
30.
スクリプトファイルの構成要素 • ステートメント
• 変数宣言、プロパティ設定など一般 的なプログラミングでのそれと同義 • スクリプトブロック • ある設定を行うための領域 • 実体はただのクロージャで、Gradle のドメインオブジェクトに委譲
31.
Gradleのドメインオブジェクト •Gradleではビルド処理を行う実行基盤 とビルド対象をドメインモデルで表現
•Mavenでいうところの Project Object Model みたいなもの •例えば... •プロジェクト → Projectオブジェクト
32.
Gradleの三大要素 •Projectオブジェクト(プロジェクト) •
処理対象を表すコアドメイン • 必ず1つ委譲のプロジェクトが存在する •Taskオブジェクト(タスク) • 作業単位を表すコアドメイン • ユーザーが実行できる最小単位 •Pluginオブジェクト(プラグイン) • 特定処理のための機能コンポーネント • タスク、プロパティ、規約などをパッケージング
33.
DSLとドメインオブジェクトの関係 apply plugin:
'java' repositories { jcenter() } dependencies { testCompile 'junit:junit:4.11' } task myTest(type:Test) << { println '俺のテストタスクを実行したった。' }
34.
DSLとドメインオブジェクトの関係 apply plugin:
'java' repositories { jcenter() } dependencies { testCompile 'junit:junit:4.11' } task myTest(type:Test) << { println '俺のテストタスクを実行したった。' } Projectオブジェクト
35.
DSLとドメインオブジェクトの関係 JavaPlugin オブジェクト
apply plugin: 'java' repositories { jcenter() } dependencies { testCompile 'junit:junit:4.11' } task myTest(type:Test) << { println '俺のテストタスクを実行したった。' }
36.
DSLとドメインオブジェクトの関係 apply plugin:
'java' repositories { jcenter() } dependencies { testCompile 'junit:junit:4.11' } task myTest(type:Test) << { println '俺のテストタスクを実行したった。' } JavaPlugin のTestタスクを拡張
37.
タスクの記述方法いろいろ task showDescription
<< { println description } showDescription.description = 'showDescriptionタスクです。' task showDescription { description = 'showDescriptionタスクです。' doLast { println description } } task showDescription(description: 'showDescriptionタスクです。') << { println description }
38.
Gradleでのテスト
39.
Gradleでできること • JUnit/TestNGのテスト実行
• 特定のテストだけ実行 • テストの並列実行 • etc.
40.
JUnit/TestNGのテスト実行 • JUnit
• Javaプラグインを適用すると デフォルトで使用可能 • TestNG • test ブロックに useTestNG() と 書くことで使用可能になる
41.
特定のテストだけ実行 test {
filter { // 特定のパッケージのテストだけを実行 includeTestsMatching "com.example.*" // クラスのサフィックスが一致するものだけを実行 includeTestsMatching "*IT" } }
42.
テストの並列実行 // 利用可能なプロセッサー数を取得
def processNumber = Runtime.runtime.availableProcessors() test { maxParallelForks = processNumber - 2 }
43.
以上、抜粋でお送りし ましたが、Gradleには もっといろいろな機能や
仕組みがあります。
44.
今日説明してないこと 依存関係管理 カスタムプラグインの作成
IDE連携アーカイブの作成Jenkins連携 Androidプロジェクトでの適用 アーティファクトの公開 独自Gradleの作成 カスタムタスクのAnt/Mavenからの移行 作成 プラグインポータル マルチプロジェクト
45.
ということで、刊行の暁 には、是非とも一読 いただきたく存じます。
46.
ご清聴ありがとう ございました。
Download