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
Takuma Watabiki
9,370 views
システム開発を前進させるためのGradle導入法
デブサミ2015 Growth! 【20-B-3】「システム開発を前進させるためのGradle導入法」の講演資料です。
Software
◦
Read more
40
Save
Share
Embed
Embed presentation
Download
Downloaded 78 times
1
/ 70
2
/ 70
3
/ 70
4
/ 70
5
/ 70
6
/ 70
7
/ 70
8
/ 70
9
/ 70
10
/ 70
11
/ 70
12
/ 70
13
/ 70
14
/ 70
15
/ 70
16
/ 70
17
/ 70
18
/ 70
19
/ 70
20
/ 70
21
/ 70
22
/ 70
23
/ 70
24
/ 70
25
/ 70
26
/ 70
27
/ 70
28
/ 70
29
/ 70
30
/ 70
31
/ 70
32
/ 70
33
/ 70
34
/ 70
35
/ 70
36
/ 70
37
/ 70
38
/ 70
39
/ 70
40
/ 70
41
/ 70
42
/ 70
43
/ 70
44
/ 70
45
/ 70
46
/ 70
47
/ 70
48
/ 70
49
/ 70
50
/ 70
51
/ 70
52
/ 70
53
/ 70
54
/ 70
55
/ 70
56
/ 70
57
/ 70
58
/ 70
59
/ 70
60
/ 70
61
/ 70
62
/ 70
63
/ 70
64
/ 70
65
/ 70
66
/ 70
67
/ 70
68
/ 70
69
/ 70
70
/ 70
More Related Content
PDF
Spring in-summer-gradle-hands on-withanswers
by
Takuma Watabiki
PDF
Jjug 20140430 gradle_basic
by
Takuma Watabiki
PPTX
Jjug 20140430 gradle_advanced
by
Masatoshi Hayashi
PDF
明日から使えるgradle
by
kimukou_26 Kimukou
PDF
OSS Product feat. Gradle
by
Yasuharu Nakano
PDF
Gradleどうでしょう
by
Takuma Watabiki
PDF
Gws 20141024 gradle_intro
by
Nobuhiro Sue
PDF
Gradle布教活動
by
Nemoto Yusuke
Spring in-summer-gradle-hands on-withanswers
by
Takuma Watabiki
Jjug 20140430 gradle_basic
by
Takuma Watabiki
Jjug 20140430 gradle_advanced
by
Masatoshi Hayashi
明日から使えるgradle
by
kimukou_26 Kimukou
OSS Product feat. Gradle
by
Yasuharu Nakano
Gradleどうでしょう
by
Takuma Watabiki
Gws 20141024 gradle_intro
by
Nobuhiro Sue
Gradle布教活動
by
Nemoto Yusuke
What's hot
PDF
Gradle handson
by
Nemoto Yusuke
PPTX
Gradle入門
by
orekyuu
PPTX
Jenkins と groovy
by
Kohsuke Kawaguchi
PPT
Jenkinsプラグイン開発
by
Takahisa Wada
PPTX
Jenkins勉強会 in 札幌 第二部
by
cactusman
PDF
Android アプリ開発における Gradle ビルドシステム
by
Yu Nobuoka
PDF
(IDEユーザのための) ClojureのEmacs開発環境について
by
Kazuhiro Hara
PDF
What makes Geb groovy?
by
Youtarou TAKAHASHI
PDF
AndroidStudioはじめました ~Gradle編~
by
Yabata Tomomitsu
PDF
Javaユーザに贈るJenkins 25のTips
by
Masanori Satoh
PDF
Cryogenでサイトつくろーじぇん
by
Kazuhiro Hara
PDF
Head toward Java 13 and Java 14 #jjug
by
Yuji Kubota
PPTX
Jenkins user conference 東京
by
Kohsuke Kawaguchi
PDF
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
by
Makoto Yamazaki
PDF
Gws 20130315 gradle_handson
by
Nobuhiro Sue
PDF
Groovy base gradle_20130309
by
Nobuhiro Sue
PDF
今すぐブラウザでES6を使おう
by
Hayashi Yuichi
PPTX
GitとCIとかチャットとかをオンプレで運用する話
by
mdome
PDF
Groovyの紹介20130323
by
Yasuharu Hayami
PDF
ひとりアドベントカレンダーのご紹介
by
Kazuhiro Hara
Gradle handson
by
Nemoto Yusuke
Gradle入門
by
orekyuu
Jenkins と groovy
by
Kohsuke Kawaguchi
Jenkinsプラグイン開発
by
Takahisa Wada
Jenkins勉強会 in 札幌 第二部
by
cactusman
Android アプリ開発における Gradle ビルドシステム
by
Yu Nobuoka
(IDEユーザのための) ClojureのEmacs開発環境について
by
Kazuhiro Hara
What makes Geb groovy?
by
Youtarou TAKAHASHI
AndroidStudioはじめました ~Gradle編~
by
Yabata Tomomitsu
Javaユーザに贈るJenkins 25のTips
by
Masanori Satoh
Cryogenでサイトつくろーじぇん
by
Kazuhiro Hara
Head toward Java 13 and Java 14 #jjug
by
Yuji Kubota
Jenkins user conference 東京
by
Kohsuke Kawaguchi
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
by
Makoto Yamazaki
Gws 20130315 gradle_handson
by
Nobuhiro Sue
Groovy base gradle_20130309
by
Nobuhiro Sue
今すぐブラウザでES6を使おう
by
Hayashi Yuichi
GitとCIとかチャットとかをオンプレで運用する話
by
mdome
Groovyの紹介20130323
by
Yasuharu Hayami
ひとりアドベントカレンダーのご紹介
by
Kazuhiro Hara
Similar to システム開発を前進させるためのGradle導入法
PDF
Gws 20120521 gradle
by
Nobuhiro Sue
PDF
Gradle a new Generation Build Tool
by
Shinya Mochida
PDF
Agileツール適合化分科会(構成管理・ビルドツール)
by
masanori kataoka
PDF
Scrum alliance regional gathering tokyo 2013 pub
by
グロースエクスパートナーズ株式会社/Growth xPartners Incorporated.
PDF
G* Workshop in Fukuoka - Introduction
by
Kazuchika Sekiya
PDF
「モダンPerl入門」の入門
by
Songhee Han
PDF
Androidアプリ開発で活躍必至!? ビルドツールGradle
by
amayaw9
PDF
Android App Development with Gradle & Android Studio
by
Soichiro Kashima
PPTX
[社内勉強会]Gradleを使おう
by
hirooooo
PDF
Dodai projectの紹介
by
Osamu Habuka
PPTX
JavaFX + NetBeans環境におけるJenkinsの活用(Jenkins第六回勉強会)
by
Ryusaburo Tanaka
PDF
Intalio japan special cloud workshop
by
Daisuke Sugai
PDF
クラウド開発に役立つ OSS あれこれ
by
Masataka MIZUNO
PDF
Xtext And Grails20091218
by
Akira Tanaka
PPTX
Gradle入門
by
Lee Choong Geun
PPTX
Continuous delivery 6
by
ShinyaOzawa
PDF
Javaな人が今すぐ使えるG*
by
irof N
PDF
エンタープライズにおける開発ツールの導入と活用推進
by
グロースエクスパートナーズ株式会社/Growth xPartners Incorporated.
PDF
エンタープライズにおける開発ツールの導入と活用推進
by
グロースエクスパートナーズ株式会社/Growth xPartners Incorporated.
PDF
PHPMatsuri2012 - 最先端チーム開発
by
ha1t
Gws 20120521 gradle
by
Nobuhiro Sue
Gradle a new Generation Build Tool
by
Shinya Mochida
Agileツール適合化分科会(構成管理・ビルドツール)
by
masanori kataoka
Scrum alliance regional gathering tokyo 2013 pub
by
グロースエクスパートナーズ株式会社/Growth xPartners Incorporated.
G* Workshop in Fukuoka - Introduction
by
Kazuchika Sekiya
「モダンPerl入門」の入門
by
Songhee Han
Androidアプリ開発で活躍必至!? ビルドツールGradle
by
amayaw9
Android App Development with Gradle & Android Studio
by
Soichiro Kashima
[社内勉強会]Gradleを使おう
by
hirooooo
Dodai projectの紹介
by
Osamu Habuka
JavaFX + NetBeans環境におけるJenkinsの活用(Jenkins第六回勉強会)
by
Ryusaburo Tanaka
Intalio japan special cloud workshop
by
Daisuke Sugai
クラウド開発に役立つ OSS あれこれ
by
Masataka MIZUNO
Xtext And Grails20091218
by
Akira Tanaka
Gradle入門
by
Lee Choong Geun
Continuous delivery 6
by
ShinyaOzawa
Javaな人が今すぐ使えるG*
by
irof N
エンタープライズにおける開発ツールの導入と活用推進
by
グロースエクスパートナーズ株式会社/Growth xPartners Incorporated.
エンタープライズにおける開発ツールの導入と活用推進
by
グロースエクスパートナーズ株式会社/Growth xPartners Incorporated.
PHPMatsuri2012 - 最先端チーム開発
by
ha1t
More from Takuma Watabiki
PDF
「普通の設計」をするということ
by
Takuma Watabiki
PDF
バックエンドのエンジニアがiOSアプリ開発をやってみて思うこと - フロントエンドのアーキテクチャの考察 -
by
Takuma Watabiki
PDF
『現場で役立つシステム設計の原則』は一般的なSI現場で役立つのか?
by
Takuma Watabiki
PDF
Grailsでドメイン駆動設計を実践する時の勘所
by
Takuma Watabiki
PDF
JGGUG Community LT 2016
by
Takuma Watabiki
PDF
Spock's world
by
Takuma Watabiki
PDF
スーパー戦隊進化論
by
Takuma Watabiki
KEY
Gws in fukuoka
by
Takuma Watabiki
PDF
Devsumi2012 JGGUG LT
by
Takuma Watabiki
PDF
Spockを使おう!
by
Takuma Watabiki
PDF
G*Magazineを読もう
by
Takuma Watabiki
PDF
G*におけるソフトウェアテスト・シーズンIII
by
Takuma Watabiki
PDF
Groovyノススメ
by
Takuma Watabiki
「普通の設計」をするということ
by
Takuma Watabiki
バックエンドのエンジニアがiOSアプリ開発をやってみて思うこと - フロントエンドのアーキテクチャの考察 -
by
Takuma Watabiki
『現場で役立つシステム設計の原則』は一般的なSI現場で役立つのか?
by
Takuma Watabiki
Grailsでドメイン駆動設計を実践する時の勘所
by
Takuma Watabiki
JGGUG Community LT 2016
by
Takuma Watabiki
Spock's world
by
Takuma Watabiki
スーパー戦隊進化論
by
Takuma Watabiki
Gws in fukuoka
by
Takuma Watabiki
Devsumi2012 JGGUG LT
by
Takuma Watabiki
Spockを使おう!
by
Takuma Watabiki
G*Magazineを読もう
by
Takuma Watabiki
G*におけるソフトウェアテスト・シーズンIII
by
Takuma Watabiki
Groovyノススメ
by
Takuma Watabiki
システム開発を前進させるためのGradle導入法
1.
システム開発を前進させる ためのGradle導入法 綿引 琢磨20-B-3 #devsumiB 株式会社デライトテクノロジーズ
2.
自己紹介 •綿引 琢磨(@bikisuke) •株式会社デライトテクノロジーズ 代表取締役 •日本Grails/Groovyユーザーグループ (JGGUG)運営委員 •レッツゴーデベロッパー企画/運営 •「Gradle徹底入門」共著
3.
イベント情報 •レッツゴーデベロッパー 2015(仮) •仙台市市民活動センター •2015/8/1(土) 13:00
∼(予定) •登壇予定スピーカー •柴田 芳樹 氏 •Kyon_mm 氏 •ほか調整中
5.
「徹底入門」というタイトルにふさわしい内容 (digitalsoul0124) http://www.amazon.co.jp/product-reviews/4798136433/ref=dp_db_cm_cr_acr_txt?ie=UTF8&showViewpoints=1 これまで手厚くサポートされたビルドツールの本を 見たことがありませんでした。(grimrose) http://grimrose.blogspot.jp/2014/12/gradle.html これ1冊あればググる必要ないのでは という安心感がある (sue445) http://booklog.jp/item/1/4798136433 Gradle”徹底”入門に恥じぬ、Gradleへの愛を 感じる徹底ぶりで、一読の価値ありです。(lino) http://lino.hatenablog.jp/entry/gradleintroduction 「入門」とあるけど、きちんとアーキテクチャから解説 されているので、十分な知識が得られるだろう。(るいも) http://www.ruimo.com/2015/01/12/1421066460000.html 内容が濃い
(木下牛) http://www.amazon.co.jp/review/ R1UIVFAYX4GEVR/ref=cm_cr_dp_title? ie=UTF8&ASIN=4798136433&channel=detail- glance&nodeID=465392&store=books
6.
絶賛発売中
7.
はじめに •本日の講演の想定聴講者 •SIerでシステム開発に携わっている •AntやMavenに満足していない •Gradleに興味はあるものの、まだ業務 で使用していない •退屈な定型作業を減らしたい
8.
アジェンダ •自動化と開発現場の状況 •Gradleの概要と7つの要素 •Gradle導入法と移行戦略 •導入後の運用 •まとめ
9.
自動化と 開発現場の状況
10.
自動化とは •何らかの作業を人手を介さず処理すること •定型的なものほど導入しやすい •繰り返し行うほどコストメリット高 •手作業による人的ミスの排除 •手順書メンテナンスという苦行から解放
11.
昨今の自動化の流れ •さまざまなツールの登場や仮想化技術の 普及により、自動化の範囲が広がっている •テストの自動化 •継続的インテグレーション •継続的デリバリー •環境構築の自動化
12.
開発現場での自動化 • ソースコードのビルド • ユニットテスト •
リポジトリサーバーへのモジュールデプロイ • 実行環境へのアプリケーションデプロイ • ソースコードやDDL/DMLの自動生成 • テストデータ投入 • etc.
13.
自動化の実現手段 カテゴリ よく利用されているツール ランチャー シェルスクリプト,
コマンドプロンプト 自動生成 Excelマクロ ビルド Ant, Maven デプロイ Ant, Maven CI Jenkins, Bamboo, TeamCity, etc.
14.
自動化の実現手段 カテゴリ よく利用されているツール ランチャー シェルスクリプト,
コマンドプロンプト 自動生成 Excelマクロ ビルド Ant, Maven デプロイ Ant, Maven CI Jenkins, Bamboo, TeamCity, etc. OSごとに必要 !
15.
自動化の実現手段 カテゴリ よく利用されているツール ランチャー シェルスクリプト,
コマンドプロンプト 自動生成 Excelマクロ ビルド Ant, Maven デプロイ Ant, Maven CI Jenkins, Bamboo, TeamCity, etc. OSごとに必要 ! 環境によってマクロ が動作しない !!
16.
自動化の実現手段 カテゴリ よく利用されているツール ランチャー シェルスクリプト,
コマンドプロンプト 自動生成 Excelマクロ ビルド Ant, Maven デプロイ Ant, Maven CI Jenkins, Bamboo, TeamCity, etc. OSごとに必要 ! 環境によってマクロ が動作しない !! 似て非なる マクロが増殖 !!
17.
自動化の実現手段 カテゴリ よく利用されているツール ランチャー シェルスクリプト,
コマンドプロンプト 自動生成 Excelマクロ ビルド Ant, Maven デプロイ Ant, Maven CI Jenkins, Bamboo, TeamCity, etc. OSごとに必要 ! 環境によってマクロ が動作しない !! 似て非なる マクロが増殖 !! ライブラリ管理 が大変 !!!
18.
自動化の実現手段 カテゴリ よく利用されているツール ランチャー シェルスクリプト,
コマンドプロンプト 自動生成 Excelマクロ ビルド Ant, Maven デプロイ Ant, Maven CI Jenkins, Bamboo, TeamCity, etc. OSごとに必要 ! 環境によってマクロ が動作しない !! 似て非なる マクロが増殖 !! ライブラリ管理 が大変 !!! 規約外の対応 が困難 !!!
19.
自動化の実現手段 カテゴリ よく利用されているツール ランチャー シェルスクリプト,
コマンドプロンプト 自動生成 Excelマクロ ビルド Ant, Maven デプロイ Ant, Maven CI Jenkins, Bamboo, TeamCity, etc. OSごとに必要 ! 環境によってマクロ が動作しない !! 似て非なる マクロが増殖 !! ライブラリ管理 が大変 !!! プラグイン 開発が面倒 !!! 規約外の対応 が困難 !!!
20.
自動化の実現手段 カテゴリ よく利用されているツール ランチャー シェルスクリプト,
コマンドプロンプト 自動生成 Excelマクロ ビルド Ant, Maven デプロイ Ant, Maven CI Jenkins, Bamboo, TeamCity, etc. OSごとに必要 ! 環境によってマクロ が動作しない !! XML地獄 !!! 似て非なる マクロが増殖 !! ライブラリ管理 が大変 !!! プラグイン 開発が面倒 !!! 規約外の対応 が困難 !!!
21.
その他の定型作業 • リポジトリのタグ付け • ドキュメントのチェック •
設計書のバージョン、ヘッダーフッター • 納品準備作業 • 一覧作成、納品物アーカイブ
22.
その他の定型作業 • リポジトリのタグ付け • ドキュメントのチェック •
設計書のバージョン、ヘッダーフッター • 納品準備作業 • 一覧作成、納品物アーカイブ 割と手作業のままの現場が多い!!
23.
その他の定型作業 • リポジトリのタグ付け • ドキュメントのチェック •
設計書のバージョン、ヘッダーフッター • 納品準備作業 • 一覧作成、納品物アーカイブ 割と手作業のままの現場が多い!! そこで Gradle ですよ!!!
24.
Gradleの概要と 7つの要素
25.
Gradleとは • OSSのビルドツール • ビルド専用ツールではないため、意味的には 自動化ツールが正しい •
他のビルドツールより優れてる(点が多い) • GroovyベースのDSLでビルド定義を記述 • Apache License, Version 2.0 •最新バージョンは 2.3(2015年2月時点)
26.
ビルドツール比較 make Ant Maven
Gradle ビルド定義 パラダイム 強み 弱み スクリプト XML XML スクリプト 手続き的 手続き的 規約ベース 規約ベース 非常にコンパクト 基本機能がシンプル クロスプラットフォーム 規約による標準化 依存関係管理 規約による標準化 依存関係管理 高い柔軟性/拡張性 移植性問題 依存関係管理なし 規約無く再利用に難有り 依存関係管理なし 定義ファイルの柔軟性 規約外の場合が困難 定義ファイルの柔軟性 IDE連携にやや難有り
27.
ビルドツール比較 make Ant Maven
Gradle ビルド定義 パラダイム 強み 弱み スクリプト XML XML スクリプト 手続き的 手続き的 規約ベース 規約ベース 非常にコンパクト 基本機能がシンプル クロスプラットフォーム 規約による標準化 依存関係管理 規約による標準化 依存関係管理 高い柔軟性/拡張性 移植性問題 依存関係管理なし 規約無く再利用に難有り 依存関係管理なし 定義ファイルの柔軟性 規約外の場合が困難 定義ファイルの柔軟性 IDE連携にやや難有り 2.3 でWTP サポートが改善
28.
なぜGradleなのか? •ビルドスクリプトが簡潔に書ける •高い柔軟性と拡張性を実現 •適用範囲が広い •ビルド以外のさまざまな場面で利用可能 •いろいろな言語に対応(中) •Android の公式ビルドツールとして採用 •2.0以降は C/C++
にも力を入れている
29.
自動化の実現手段 カテゴリ よく利用されているツール ランチャー シェルスクリプト,
コマンドプロンプト 自動生成 Excelマクロ ビルド Ant, Maven デプロイ Ant, Maven CI Jenkins, Bamboo, TeamCity, etc.
30.
自動化の実現手段 カテゴリ よく利用されているツール ランチャー シェルスクリプト,
コマンドプロンプト 自動生成 Excelマクロ ビルド Ant, Maven デプロイ Ant, Maven CI Jenkins, Bamboo, TeamCity, etc. Gradle だけで実現可能!!
31.
その他の定型作業 • リポジトリのタグ付け • ドキュメントのチェック •
設計書のバージョン、ヘッダーフッター • 納品準備作業 • 一覧作成、納品物アーカイブ
32.
その他の定型作業 • リポジトリのタグ付け • ドキュメントのチェック •
設計書のバージョン、ヘッダーフッター • 納品準備作業 • 一覧作成、納品物アーカイブ Gradleで自動化可能!!
33.
Gradleの適用範囲 DevOps Manager 継 続 的 断 続 的 ビルド・デプロイ 納品物作成 開発・運用 支援ツール ドキュメント 定型チェック
34.
自動化のための7つの要素 1. OSプラットフォーム非依存 2. 自動インストール方式 3.
スクリプトによる簡潔な記述 4. Javaライブラリとの親和性 5. 互換性重視のAPI提供 6. 他のビルドツールの資産活用 7. 柔軟なプラグイン導入方式
35.
OSプラットフォーム非依存 • 実行環境にはJavaVMさえあればOK • JAVA_HOMEの設定は必要 •
JDK6以上で動作するが、JDK8を推奨 • ただし、JDK8の場合はGradleは2.0 以上を使用してください
36.
自動インストール方式 • Gradleラッパーにより、利用者に明示的 なインストールや設定をさせずにGradle を配布可能 • gradlewコマンド一発で、初回実行時に ダウンロードし、そのまま実行 •
使用するGradleに社内向けカスタマイズ を施しておける
37.
スクリプトによる簡潔な記述 • Groovy DSLによる簡潔な記法 •
Javaのコードをそのまま書くことも可能 • プログラマに親しみやすい • ビルドスクリプトの分割や構造化で、 可読性を維持しながら保守可能 • ただし、スパゲッティ化にも注意
38.
Javaライブラリとの親和性 • Javaと親和性の高いGroovyベースである ことから、Javaの標準ライブラリやOSS の豊富なライブラリを利用可能 • ドキュメントのチェックや自動生成など では、Apache
POIが大活躍 • Excel参照なら、GExcelAPIがオススメ https://github.com/nobeans/gexcelapi
39.
互換性重視のAPI提供 •後方互換性に配慮した機能ライフサイクル ポリシーによって、段階的な機能の追加や 廃止を実現 • 4つのステータス • 非公開(Internal)、実験的(Incubating)、 公開(Public)、廃止(Deprecated) •
バージョンアップによる影響を小さく し、より安定的に機能を提供
40.
他のビルドツールの資産活用 • Ant • build.xmlをそのまま実行できる •
タスクレベルでの呼び出しも可能で、 段階的な移行がしやすい •Maven • Maven Centralリポジトリを参照可能 • pom.xmlからビルドスクリプトを生成
41.
柔軟なプラグイン導入方式 • プラグインが作りやすい • Mavenの場合はモジュール作成が必須 •
段階的にプラグインの定義が可能 • 暫定使用:ビルドスクリプトに直書き • 個別使用:スクリプトファイルの分割、 buildSrcに配置 • 汎用使用:プラグインモジュール化
42.
自動化の実現手段 カテゴリ よく利用されているツール ランチャー 自動生成 ビルド デプロイ CI Jenkins,
Bamboo, TeamCity, etc. シェルスクリプト, コマンドプロンプト Excelマクロ Ant, Maven OSごとに必要 ! 環境によってマクロ が動作しない !! XML地獄 !!! 似て非なる マクロが増殖 !! ライブラリ管理 が大変 !!! プラグイン 開発が面倒 !!! 規約外の対応 が困難 !!!
43.
自動化の実現手段 カテゴリ よく利用されているツール ランチャー 自動生成 ビルド デプロイ CI Jenkins,
Bamboo, TeamCity, etc. Excelマクロ Ant, Maven 環境によってマクロ が動作しない !! XML地獄 !!! 似て非なる マクロが増殖 !! ライブラリ管理 が大変 !!! プラグイン 開発が面倒 !!! 規約外の対応 が困難 !!! Gradle ラッパー
44.
自動化の実現手段 カテゴリ よく利用されているツール ランチャー 自動生成 ビルド デプロイ CI Jenkins,
Bamboo, TeamCity, etc. Excelマクロ Ant, Maven 環境によってマクロ が動作しない !! XML地獄 !!! 似て非なる マクロが増殖 !! ライブラリ管理 が大変 !!! プラグイン 開発が面倒 !!! 規約外の対応 が困難 !!! Gradle ラッパー OS非依存 !
45.
自動化の実現手段 カテゴリ よく利用されているツール ランチャー 自動生成 ビルド デプロイ CI Jenkins,
Bamboo, TeamCity, etc. Excelマクロ Ant, Maven 環境によってマクロ が動作しない !! XML地獄 !!! 似て非なる マクロが増殖 !! ライブラリ管理 が大変 !!! プラグイン 開発が面倒 !!! 規約外の対応 が困難 !!! Gradle ラッパー OS非依存 ! 明示的インス トール不要 !
46.
自動化の実現手段 カテゴリ よく利用されているツール ランチャー 自動生成 ビルド デプロイ CI Jenkins,
Bamboo, TeamCity, etc. Ant, Maven XML地獄 !!! ライブラリ管理 が大変 !!! プラグイン 開発が面倒 !!! 規約外の対応 が困難 !!! Gradle ラッパー Gradle + GExcelAPI(POI) OS非依存 ! 明示的インス トール不要 !
47.
自動化の実現手段 カテゴリ よく利用されているツール ランチャー 自動生成 ビルド デプロイ CI Jenkins,
Bamboo, TeamCity, etc. Ant, Maven XML地獄 !!! ライブラリ管理 が大変 !!! プラグイン 開発が面倒 !!! 規約外の対応 が困難 !!! Gradle ラッパー Gradle + GExcelAPI(POI) OS非依存 ! 明示的インス トール不要 ! Javaライブラリ活用 !!
48.
自動化の実現手段 カテゴリ よく利用されているツール ランチャー 自動生成 ビルド デプロイ CI Jenkins,
Bamboo, TeamCity, etc. Ant, Maven XML地獄 !!! ライブラリ管理 が大変 !!! プラグイン 開発が面倒 !!! 規約外の対応 が困難 !!! Gradle ラッパー Gradle + GExcelAPI(POI) OS非依存 ! マクロ非依存 で一元化 !! 明示的インス トール不要 ! Javaライブラリ活用 !!
49.
自動化の実現手段 カテゴリ よく利用されているツール ランチャー 自動生成 ビルド デプロイ CI Jenkins,
Bamboo, TeamCity, etc. Gradle ラッパー Gradle + GExcelAPI(POI) Gradle + プラグイン OS非依存 ! マクロ非依存 で一元化 !! 明示的インス トール不要 ! Javaライブラリ活用 !!
50.
自動化の実現手段 カテゴリ よく利用されているツール ランチャー 自動生成 ビルド デプロイ CI Jenkins,
Bamboo, TeamCity, etc. Gradle ラッパー Gradle + GExcelAPI(POI) Gradle + プラグイン OS非依存 ! マクロ非依存 で一元化 !! Maven同様の 依存関係管理 !!! 明示的インス トール不要 ! Javaライブラリ活用 !!
51.
自動化の実現手段 カテゴリ よく利用されているツール ランチャー 自動生成 ビルド デプロイ CI Jenkins,
Bamboo, TeamCity, etc. Gradle ラッパー Gradle + GExcelAPI(POI) Gradle + プラグイン OS非依存 ! マクロ非依存 で一元化 !! Maven同様の 依存関係管理 !!! 明示的インス トール不要 ! Javaライブラリ活用 !! 優れた 後方互換性 !!!
52.
自動化の実現手段 カテゴリ よく利用されているツール ランチャー 自動生成 ビルド デプロイ CI Jenkins,
Bamboo, TeamCity, etc. Gradle ラッパー Gradle + GExcelAPI(POI) Gradle + プラグイン OS非依存 ! マクロ非依存 で一元化 !! 規約外でも安心 !!! Maven同様の 依存関係管理 !!! 明示的インス トール不要 ! Javaライブラリ活用 !! 優れた 後方互換性 !!!
53.
自動化の実現手段 カテゴリ よく利用されているツール ランチャー 自動生成 ビルド デプロイ CI Jenkins,
Bamboo, TeamCity, etc. Gradle ラッパー Gradle + GExcelAPI(POI) Gradle + プラグイン OS非依存 ! マクロ非依存 で一元化 !! 規約外でも安心 !!! 気軽にプラグイン作成 !!! Maven同様の 依存関係管理 !!! 明示的インス トール不要 ! Javaライブラリ活用 !! 優れた 後方互換性 !!!
54.
自動化の実現手段 カテゴリ よく利用されているツール ランチャー 自動生成 ビルド デプロイ CI Jenkins,
Bamboo, TeamCity, etc. Gradle ラッパー Gradle + GExcelAPI(POI) Gradle + プラグイン OS非依存 ! マクロ非依存 で一元化 !! 規約外でも安心 !!! 気軽にプラグイン作成 !!! Maven同様の 依存関係管理 !!! 簡潔なDSL !!! 明示的インス トール不要 ! Javaライブラリ活用 !! 優れた 後方互換性 !!!
55.
Gradle導入法と 移行戦略
56.
導入パターン •管理系支援ツールとして •データ集計、レポート出力など •開発支援ツールとして •自動生成、テスト支援など •ビルドツールとして •新規導入 or 既存ビルドツールから移行
57.
導入事例 •事例1 •小綺麗なテストレポートを提供 •GradleでテストするだけでOK •事例2 •ドキュメントの定型チェック •設計書IDやバージョン番号などの 記述ミスや更新漏れを検出
58.
導入事例 •事例3 •Excel-JSON変換ツール •ExcelデータをJSONに変換 •事例4 •クライアント向けテストツール •JSONを返すHTTPサーバーを Gradleで起動
59.
ビルドツールの移行戦略 •2つのアプローチ •フルスクラッチで書く •ゼロベースの方が効率良い場合も •既存のビルドスクリプトを利用する •既存が Ant か
Maven かで移行 ステップが異なる
60.
Antからの移行ポイント • ディレクトリ構造&ファイル名前 • Gradleの規約に合わせるか •
既存にビルドスクリプトを合わせるか • 参照ライブラリの管理 • 社内リポジリを立てるか • 外部リポジトリを直接参照するか • ファイル管理にするか
61.
Mavenからの移行ポイント • プラグイン • Gradleに置き換え可能なプラグインが あるか •
プラグインの置き換えが可能なら、 移行は比較的容易 • カスタム系のプラグインはプラグイン ポータルで確認
62.
プラグイン対応表 1/2 機能 Maven
Gradle コンパイル maven-compiler-plugin Java Plugin テスト maven-surefire-plugin Java Pluginjavadoc maven-javadoc-plugin Java Plugin アーカイブ maven-jar-plugin Java Plugin maven-assembly-plugin Java Plugin maven-war-plugin War Plugin デプロイ maven-install-plugin Maven Plugin mave-deploy-plugin Maven Plugin
63.
プラグイン対応表 2/2 機能 Maven
Gradle eclipse連携 maven-eclipse-plugin Eclipse Plugin 静的解析 mave-checkstyle-plugin Checkstyle Plugin 静的解析 maven-pmd-plugin PMD Plugin 静的解析 findbugs-maven-plugin Findbugs Plugin 静的解析 jacoco-maven-plugin Jacoco Plugin アーキタイプ作成 maven-archetype-plugin initタスク※ Ant実行 maven-antrun-plugin 標準機能
64.
http://plugins.gradle.org
65.
導入後の運用
66.
導入後にやるべきこと •ビルドスクリプトの構造化 •タスクのリファクタリング •プラグインの抽出
67.
ビルドスクリプトの構造化 •ビルドスクリプトを構造化し、適切な 状態を維持する •共通的な設定やタスクの抽出 •内容に応じてファイルを分割 •ビルドスクリプトの肥大化防止
68.
タスクのリファクタリング •複数タスク内に同じ処理があれば抽出 •共通処理はクラス化、タスク化して 再利用性を上げる •タスクは単一責務を心がける
69.
プラグインの抽出 •他のプロジェクトにも利用可能な汎用 的なタスクがあった場合は、プラグイ ンとして抽出 •社内リポジトリにリリースして展開
70.
まとめ •開発の現場は、Gradleを活用すれば もっと自動化できる •Gradleの導入は入れやすいところから •ビルドツールの移行時は、既存のツール に応じたポイントを押さえて実施 •導入後はビルドスクリプトの肥大化や スパゲッティ化に注意して、リファクタ リングを心がける
Download