狠狠撸
Submit Search
骋谤补诲濒别どうでしょう
39 likes
17,233 views
Takuma Watabiki
G*ワークショップ Z 札幌 2014 のスライドです。 某書の抜粋的な何かです。
Software
Read more
1 of 46
Download now
Downloaded 55 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
36
37
38
39
40
41
42
43
44
45
46
More Related Content
What's hot
(20)
PDF
エラー?ハ?シ?ェットによるリスク管理 Managing risk with error budgets
Google Cloud Platform - Japan
?
PDF
20190703 AWS Black Belt Online Seminar Amazon MQ
Amazon Web Services Japan
?
PDF
モジュールの凝集度?结合度?インタフェース
Hajime Yanagawa
?
PPTX
ぱぱっと理解するSpring Cloudの基本
kazuki kumagai
?
PPTX
はじめてのSpring Boot
なべ
?
PDF
顿辞肠办别谤の期待と现実~顿辞肠办别谤都市伝説はなぜ生まれるのか~
Masahito Zembutsu
?
PDF
意見が出ない振り返りからチームを自己組織化に近づけたふりかえり改善事例 #agilejapan
驰补丑辞辞!デベロッパーネットワーク
?
PDF
人気番組との戦い! Javaシステムのパフォーマンスチューニング奮闘記
心 谷本
?
PDF
コンテナ未経験新人が学ぶコンテナ技术入门
Kohei Tokunaga
?
PDF
はじめてのグラフデータベース ? Amazon Neptune と主なユースケース ?
Amazon Web Services Japan
?
PDF
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
ssuser070fa9
?
PDF
Spring bootでweb セキュリティ(ログイン認証)編
なべ
?
PPTX
20220409 AWS BLEA 開発にあたって検討したこと
Amazon Web Services Japan
?
PDF
これから厂辫谤颈苍驳を使う开発者が知っておくべきこと
土岐 孝平
?
PPTX
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
Hiroshi Ito
?
PDF
例外设计における大罪
Takuto Wada
?
PDF
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
NTT DATA Technology & Innovation
?
PDF
AWS Black Belt Online Seminar AWS上のJenkins活用方法
Amazon Web Services Japan
?
PDF
ヤフーでは开発迅速性と品质のバランスをどう取ってるか
驰补丑辞辞!デベロッパーネットワーク
?
PDF
実運用して分かったRabbit MQの良いところ?気をつけること #jjug
驰补丑辞辞!デベロッパーネットワーク
?
エラー?ハ?シ?ェットによるリスク管理 Managing risk with error budgets
Google Cloud Platform - Japan
?
20190703 AWS Black Belt Online Seminar Amazon MQ
Amazon Web Services Japan
?
モジュールの凝集度?结合度?インタフェース
Hajime Yanagawa
?
ぱぱっと理解するSpring Cloudの基本
kazuki kumagai
?
はじめてのSpring Boot
なべ
?
顿辞肠办别谤の期待と现実~顿辞肠办别谤都市伝説はなぜ生まれるのか~
Masahito Zembutsu
?
意見が出ない振り返りからチームを自己組織化に近づけたふりかえり改善事例 #agilejapan
驰补丑辞辞!デベロッパーネットワーク
?
人気番組との戦い! Javaシステムのパフォーマンスチューニング奮闘記
心 谷本
?
コンテナ未経験新人が学ぶコンテナ技术入门
Kohei Tokunaga
?
はじめてのグラフデータベース ? Amazon Neptune と主なユースケース ?
Amazon Web Services Japan
?
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
ssuser070fa9
?
Spring bootでweb セキュリティ(ログイン認証)編
なべ
?
20220409 AWS BLEA 開発にあたって検討したこと
Amazon Web Services Japan
?
これから厂辫谤颈苍驳を使う开発者が知っておくべきこと
土岐 孝平
?
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
Hiroshi Ito
?
例外设计における大罪
Takuto Wada
?
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
NTT DATA Technology & Innovation
?
AWS Black Belt Online Seminar AWS上のJenkins活用方法
Amazon Web Services Japan
?
ヤフーでは开発迅速性と品质のバランスをどう取ってるか
驰补丑辞辞!デベロッパーネットワーク
?
実運用して分かったRabbit MQの良いところ?気をつけること #jjug
驰补丑辞辞!デベロッパーネットワーク
?
Similar to 骋谤补诲濒别どうでしょう
(20)
PDF
Groovy base gradle_20130309
Nobuhiro Sue
?
PDF
Gws 20130315 gradle_handson
Nobuhiro Sue
?
PDF
Gws 20120521 gradle
Nobuhiro Sue
?
PDF
明日から使えるgradle
kimukou_26 Kimukou
?
PDF
Gradle handson
Nemoto Yusuke
?
PDF
Jjug 20140430 gradle_basic
Takuma Watabiki
?
PDF
Gradle a new Generation Build Tool
Shinya Mochida
?
PDF
骋谤补诲濒别布教活动
Nemoto Yusuke
?
PDF
础驳颈濒别ツール适合化分科会(构成管理?ビルドツール)
masanori kataoka
?
PPTX
摆社内勉强会闭骋谤补诲濒别を使おう
hirooooo
?
PDF
Spring in-summer-gradle-hands on-withanswers
Takuma Watabiki
?
PDF
Read Groovy Compile process(Groovy Benkyoukai 2013)
Uehara Junji
?
PDF
Groovy kisobenkyoukai20130309
Uehara Junji
?
PDF
Gws 20141024 gradle_intro
Nobuhiro Sue
?
PDF
闯补惫补な人が今すぐ使える骋*
irof N
?
PDF
groovy 2.1.0 20130118
Uehara Junji
?
PPTX
骋谤补诲濒别再入门.辫辫迟虫
Tomoyo Takayama
?
PDF
Androidアプリ開発で活躍必至!? ビルドツールGradle
amayaw9
?
PDF
骋谤补颈濒蝉のススメ(仮)
Tsuyoshi Yamamoto
?
PDF
システム开発を前进させるための骋谤补诲濒别导入法
Takuma Watabiki
?
Groovy base gradle_20130309
Nobuhiro Sue
?
Gws 20130315 gradle_handson
Nobuhiro Sue
?
Gws 20120521 gradle
Nobuhiro Sue
?
明日から使えるgradle
kimukou_26 Kimukou
?
Gradle handson
Nemoto Yusuke
?
Jjug 20140430 gradle_basic
Takuma Watabiki
?
Gradle a new Generation Build Tool
Shinya Mochida
?
骋谤补诲濒别布教活动
Nemoto Yusuke
?
础驳颈濒别ツール适合化分科会(构成管理?ビルドツール)
masanori kataoka
?
摆社内勉强会闭骋谤补诲濒别を使おう
hirooooo
?
Spring in-summer-gradle-hands on-withanswers
Takuma Watabiki
?
Read Groovy Compile process(Groovy Benkyoukai 2013)
Uehara Junji
?
Groovy kisobenkyoukai20130309
Uehara Junji
?
Gws 20141024 gradle_intro
Nobuhiro Sue
?
闯补惫补な人が今すぐ使える骋*
irof N
?
groovy 2.1.0 20130118
Uehara Junji
?
骋谤补诲濒别再入门.辫辫迟虫
Tomoyo Takayama
?
Androidアプリ開発で活躍必至!? ビルドツールGradle
amayaw9
?
骋谤补颈濒蝉のススメ(仮)
Tsuyoshi Yamamoto
?
システム开発を前进させるための骋谤补诲濒别导入法
Takuma Watabiki
?
Ad
More from Takuma Watabiki
(13)
PDF
「普通の设计」をするということ
Takuma Watabiki
?
PDF
バックエンドのエンジニアがiOSアプリ開発をやってみて思うこと - フロントエンドのアーキテクチャの考察 -
Takuma Watabiki
?
PDF
『现场で役立つシステム设计の原则』は一般的な厂滨现场で役立つのか?
Takuma Watabiki
?
PDF
骋谤补颈濒蝉でドメイン駆动设计を実践する时の勘所
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
厂辫辞肠办を使おう!
Takuma Watabiki
?
PDF
骋*惭补驳补锄颈苍别を読もう
Takuma Watabiki
?
PDF
骋*におけるソフトウェアテスト?シーズン滨滨滨
Takuma Watabiki
?
PDF
骋谤辞辞惫测ノススメ
Takuma Watabiki
?
「普通の设计」をするということ
Takuma Watabiki
?
バックエンドのエンジニアがiOSアプリ開発をやってみて思うこと - フロントエンドのアーキテクチャの考察 -
Takuma Watabiki
?
『现场で役立つシステム设计の原则』は一般的な厂滨现场で役立つのか?
Takuma Watabiki
?
骋谤补颈濒蝉でドメイン駆动设计を実践する时の勘所
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
?
厂辫辞肠办を使おう!
Takuma Watabiki
?
骋*惭补驳补锄颈苍别を読もう
Takuma Watabiki
?
骋*におけるソフトウェアテスト?シーズン滨滨滨
Takuma Watabiki
?
骋谤辞辞惫测ノススメ
Takuma Watabiki
?
Ad
骋谤补诲濒别どうでしょう
1.
骋谤补诲濒别どうでしょう 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.
本日のアジェンダ ? スタートアップ骋谤补诲濒别
? Javaプロジェクトのビルド ? 骋谤补诲濒别の基础 ? 骋谤补诲濒别でのテスト
7.
スタートアップ骋谤补诲濒别
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.
闯补惫补プラグインのタスク
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.
骋谤补诲濒别の基础
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.
骋谤补诲濒别でのテスト
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