SlideShare una empresa de Scribd logo
1 de 46
Descargar para leer sin conexión
Gradleどうでしょう 
G*workshop Z sapporo 2014 
2014/09/27
自己紹介 
•綿引 琢磨(わたびき たくま) 
•株式会社デライトテクノロジーズ 
代表取締役 
•日本Grails/Groovyユーザーグループ 
運営委員 
•twitter : @bikisuke
すいません、間に合いませんでした... 
•「Gradle徹底入門(仮)」(翔泳社) 
•@masanobuimai, @nobusue, 
@literalice, @bikisuke の共著 
•Gradle2.0ベース(Gradle2.1トピック有) 
•500ページ超の手頃な鈍器 
•2014年11月刊行予定(たぶん...)
今日は刊行より一足先に 
Gradle徹底入門 
を旅することにします。
とはいえ、、、さすがに 
全部はできないので 
抜粋してお送りします。
本日のアジェンダ 
• スタートアップGradle 
• Javaプロジェクトのビルド 
• Gradleの基礎 
• Gradleでのテスト
スタートアップGradle
Gradleとは 
• OSSのビルドツール 
• 他のビルドツールより優れてる(点が多い) 
• GroovyベースのDSLで柔軟性が高い 
• 拡張しやすいアーキテクチャを採用 
• 最新バージョンは 2.1(2014年9月時点)
なぜGradleなのか? 
• ビルドスクリプトがシンプル 
• プラグインが作りやすい 
• 既存のツールの資産を活用できる 
• Maven Central リポジトリを参照可能 
• いろんな言語に対応(中) 
• Android の公式ビルドツールとして採用 
• ここ最近は C/C++ にも力を入れている
ビルドツール比較 
make Ant Maven Gradle 
ビルド定義 
パラダイム 
強み 
弱み 
スクリプトXML XML スクリプト 
手続き的手続き的規約ベース規約ベース 
非常にコンパクト基本機能がシンプル 
クロスプラットフォーム 
規約による標準化 
依存関係管理 
規約による標準化 
依存関係管理 
高い柔軟性/拡張性 
移植性問題 
依存関係管理なし 
規約無く再利用に難有り 
依存関係管理なし 
定義ファイルの柔軟性 
規約外の場合が困難 
定義ファイルの柔軟性IDE連携にやや難有り
Gradleのインストール 
• 前提条件: JDK6以上 
• Mac/Unix系:GVMが便利 
• http://gvmtool.net/ 
• $ gvm install gradle 
• Windows: 公式サイトからダウンロード 
• http://www.gradle.org/downloads 
• ZIP解凍して、環境変数Pathに 
<GRADLE_HOME>bin
Hello, Gradle! 
// build.gradle 
task hello << { 
println ‘Hello, Gradle!’ 
}
Build Initプラグイン 
を使ってみる(1/2) 
• Gradle標準プラグインのひとつ 
• ビルドプロジェクトの雛形を生成 
• basic: ビルドスクリプト、Gradleラッパーを生成 
• pom: pom.xml からビルドスクリプト、Gradleラッパーを生成 
• java-library: basic + Java規約ディレクトリを生成 
• groovy-library: basic + Groovy規約ディレクトリを生成 
• scala-library: basic + Scala規約ディレクトリを生成
Build Initプラグイン 
を使ってみる(2/2) 
$ gradle init --type java-library 
: 
$ gradle build
Javaプロジェクト 
のビルド
Javaプラグイン 
•Javaプロジェクトのコンパイル、テスト、 
アーカイブに必要なタスク、プロパティ、 
規約などを提供 
• ソースセット: src/main/java, src/main/resources, 
src/test/java, src/test/resources 
• タスク: clean, compileJava, test, jar など 
• プロパティ: sourceSets, sourceCompatibility, 
reportsDir, testReportDir, archivesBaseName など
Javaプラグインのタスク
Javaのビルドでよく使用するプロパティ 
タスクプロパティ用途 
compileJava/ 
compileTestJava options エンコーディングやブートクラスパスなどのコンパ 
イルオプションを追加する際に使用 
jar archiveName JARファイル名を設定する際に使用 
test 
minHeapSize テストプロセスに-Xmsを設定する際に使用 
tteesstt maxHeapSize テストプロセスに-Xmxを設定する際に使用 
jvmArgs ヒープ以外のJVMパラメータを設定する際に使用 
- sourceCompatibility コンパイル時に使用するJavaのバージョン 
- targetCompatibility クラス生成時のターゲットとするJavaのバージョン
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' 
}
Applicationプラグイン 
を使ってみる(1/2) 
// Gradle 2.1 
plugins { 
id ‘application’ 
} 
mainClassName = 'com.example.Main'
Applicationプラグイン 
を使ってみる(2/2) 
$ gradle run
Gradleの基礎
Gradleのアーキテクチャ 
ビルドスクリプト 
サードパーティ/コミュニティ(野良) プラグイン 
Gradle 標準プラグイン 
Gradle コアライブラリ 
Groovy OSS ライブラリ 
Java 
JavaVM
Gradleのアーキテクチャ 
ビルドスクリプト 
サードパーティ/コミュニティ(野良) プラグイン 
Gradle 標準プラグイン 
Gradle コアライブラリ 
Groovy OSS ライブラリ 
Java 
JavaVM 
Gradle
ビルドの入力情報
ビルドの入力情報
初期化スクリプト 
• ビルドの最初で実行されるGroovyスクリプト 
• 主にユーザー情報や実行環境などの初期設定 
を行うために使用 
• デフォルトは init.gradle 
• -I (--init-script) <FILE_NAME> でもOK
設定スクリプト 
• ビルド対象のプロジェクトの設定を行う 
Groovyスクリプト 
• 主にビルドに参加するプロジェクトを定義す 
る用途で使用 
• デフォルトは settings.gradle 
• -c (--settings-file) <FILE_NAME> でもOK
ビルドスクリプト 
• ビルドの定義を記述するスクリプトファイル 
• ビルド対象がシンプルなものであれば、 
このファイル1つあればOK 
• デフォルトは build.gradle 
• -b (--build-file) <FILE_NAME> でもOK
スクリプトファイルの構成要素 
• ステートメント 
• 変数宣言、プロパティ設定など一般 
的なプログラミングでのそれと同義 
• スクリプトブロック 
• ある設定を行うための領域 
• 実体はただのクロージャで、Gradle 
のドメインオブジェクトに委譲
Gradleのドメインオブジェクト 
•Gradleではビルド処理を行う実行基盤 
とビルド対象をドメインモデルで表現 
•Mavenでいうところの 
Project Object Model みたいなもの 
•例えば... 
•プロジェクト → Projectオブジェクト
Gradleの三大要素 
•Projectオブジェクト(プロジェクト) 
• 処理対象を表すコアドメイン 
• 必ず1つ委譲のプロジェクトが存在する 
•Taskオブジェクト(タスク) 
• 作業単位を表すコアドメイン 
• ユーザーが実行できる最小単位 
•Pluginオブジェクト(プラグイン) 
• 特定処理のための機能コンポーネント 
• タスク、プロパティ、規約などをパッケージング
DSLとドメインオブジェクトの関係 
apply plugin: 'java' 
repositories { 
jcenter() 
} 
dependencies { 
testCompile 'junit:junit:4.11' 
} 
task myTest(type:Test) << { 
println '俺のテストタスクを実行したった。' 
}
DSLとドメインオブジェクトの関係 
apply plugin: 'java' 
repositories { 
jcenter() 
} 
dependencies { 
testCompile 'junit:junit:4.11' 
} 
task myTest(type:Test) << { 
println '俺のテストタスクを実行したった。' 
} 
Projectオブジェクト
DSLとドメインオブジェクトの関係 
JavaPlugin 
オブジェクト 
apply plugin: 'java' 
repositories { 
jcenter() 
} 
dependencies { 
testCompile 'junit:junit:4.11' 
} 
task myTest(type:Test) << { 
println '俺のテストタスクを実行したった。' 
}
DSLとドメインオブジェクトの関係 
apply plugin: 'java' 
repositories { 
jcenter() 
} 
dependencies { 
testCompile 'junit:junit:4.11' 
} 
task myTest(type:Test) << { 
println '俺のテストタスクを実行したった。' 
} 
JavaPlugin 
のTestタスクを拡張
タスクの記述方法いろいろ 
task showDescription << { 
println description 
} 
showDescription.description = 'showDescriptionタスクです。' 
task showDescription { 
description = 'showDescriptionタスクです。' 
doLast { 
println description 
} 
} 
task showDescription(description: 'showDescriptionタスクです。') << { 
println description 
}
Gradleでのテスト
Gradleでできること 
• JUnit/TestNGのテスト実行 
• 特定のテストだけ実行 
• テストの並列実行 
• etc.
JUnit/TestNGのテスト実行 
• JUnit 
• Javaプラグインを適用すると 
デフォルトで使用可能 
• TestNG 
• test ブロックに useTestNG() と 
書くことで使用可能になる
特定のテストだけ実行 
test { 
filter { 
// 特定のパッケージのテストだけを実行 
includeTestsMatching "com.example.*" 
// クラスのサフィックスが一致するものだけを実行 
includeTestsMatching "*IT" 
} 
}
テストの並列実行 
// 利用可能なプロセッサー数を取得 
def processNumber = 
Runtime.runtime.availableProcessors() 
test { 
maxParallelForks = processNumber - 2 
}
以上、抜粋でお送りし 
ましたが、Gradleには 
もっといろいろな機能や 
仕組みがあります。
今日説明してないこと 
依存関係管理 
カスタムプラグインの作成 
IDE連携アーカイブの作成Jenkins連携 
Androidプロジェクトでの適用 
アーティファクトの公開 
独自Gradleの作成 
カスタムタスクのAnt/Mavenからの移行 
作成 
プラグインポータル 
マルチプロジェクト
ということで、刊行の暁 
には、是非とも一読 
いただきたく存じます。
ご清聴ありがとう 
ございました。

Más contenido relacionado

La actualidad más candente

DDD sample code explained in Java
DDD sample code explained in JavaDDD sample code explained in Java
DDD sample code explained in Java増田 亨
 
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~JustSystems Corporation
 
クラスローダーについて
クラスローダーについてクラスローダーについて
クラスローダーについてSuguru ARAKAWA
 
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールこんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールdcubeio
 
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とはがんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とはJun-ichi Sakamoto
 
Harbor RegistryのReplication機能
Harbor RegistryのReplication機能Harbor RegistryのReplication機能
Harbor RegistryのReplication機能Masanori Nara
 
Java EE から Quarkus による開発への移行について
Java EE から Quarkus による開発への移行についてJava EE から Quarkus による開発への移行について
Java EE から Quarkus による開発への移行についてShigeru Tatsuta
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話JustSystems Corporation
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)NTT DATA Technology & Innovation
 
第六回渋谷Java Java8のJVM監視を考える
第六回渋谷Java Java8のJVM監視を考える第六回渋谷Java Java8のJVM監視を考える
第六回渋谷Java Java8のJVM監視を考えるchonaso
 
AKS と ACI を組み合わせて使ってみた
AKS と ACI を組み合わせて使ってみたAKS と ACI を組み合わせて使ってみた
AKS と ACI を組み合わせて使ってみたHideaki Aoyagi
 
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話JustSystems Corporation
 
Azure Static Web Apps を試してみた!
Azure Static Web Apps を試してみた!Azure Static Web Apps を試してみた!
Azure Static Web Apps を試してみた!一希 大田
 
ジャストシステムJava100本ノックのご紹介
ジャストシステムJava100本ノックのご紹介ジャストシステムJava100本ノックのご紹介
ジャストシステムJava100本ノックのご紹介JustSystems Corporation
 
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころPython におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころJunya Hayashi
 
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)NTT DATA Technology & Innovation
 
アプリ開発者、DB 管理者視点での Cloud Spanner 活用方法 | 第 10 回 Google Cloud INSIDE Games & App...
アプリ開発者、DB 管理者視点での Cloud Spanner 活用方法 | 第 10 回 Google Cloud INSIDE Games & App...アプリ開発者、DB 管理者視点での Cloud Spanner 活用方法 | 第 10 回 Google Cloud INSIDE Games & App...
アプリ開発者、DB 管理者視点での Cloud Spanner 活用方法 | 第 10 回 Google Cloud INSIDE Games & App...Google Cloud Platform - Japan
 
JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)
JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)
JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)Yoshiro Tokumasu
 
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)NTT DATA Technology & Innovation
 
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Tomcatの実装から学ぶクラスローダリーク #渋谷JavaTomcatの実装から学ぶクラスローダリーク #渋谷Java
Tomcatの実装から学ぶクラスローダリーク #渋谷JavaNorito Agetsuma
 

La actualidad más candente (20)

DDD sample code explained in Java
DDD sample code explained in JavaDDD sample code explained in Java
DDD sample code explained in Java
 
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
 
クラスローダーについて
クラスローダーについてクラスローダーについて
クラスローダーについて
 
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールこんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
 
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とはがんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
 
Harbor RegistryのReplication機能
Harbor RegistryのReplication機能Harbor RegistryのReplication機能
Harbor RegistryのReplication機能
 
Java EE から Quarkus による開発への移行について
Java EE から Quarkus による開発への移行についてJava EE から Quarkus による開発への移行について
Java EE から Quarkus による開発への移行について
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
 
第六回渋谷Java Java8のJVM監視を考える
第六回渋谷Java Java8のJVM監視を考える第六回渋谷Java Java8のJVM監視を考える
第六回渋谷Java Java8のJVM監視を考える
 
AKS と ACI を組み合わせて使ってみた
AKS と ACI を組み合わせて使ってみたAKS と ACI を組み合わせて使ってみた
AKS と ACI を組み合わせて使ってみた
 
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
 
Azure Static Web Apps を試してみた!
Azure Static Web Apps を試してみた!Azure Static Web Apps を試してみた!
Azure Static Web Apps を試してみた!
 
ジャストシステムJava100本ノックのご紹介
ジャストシステムJava100本ノックのご紹介ジャストシステムJava100本ノックのご紹介
ジャストシステムJava100本ノックのご紹介
 
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころPython におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
 
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
 
アプリ開発者、DB 管理者視点での Cloud Spanner 活用方法 | 第 10 回 Google Cloud INSIDE Games & App...
アプリ開発者、DB 管理者視点での Cloud Spanner 活用方法 | 第 10 回 Google Cloud INSIDE Games & App...アプリ開発者、DB 管理者視点での Cloud Spanner 活用方法 | 第 10 回 Google Cloud INSIDE Games & App...
アプリ開発者、DB 管理者視点での Cloud Spanner 活用方法 | 第 10 回 Google Cloud INSIDE Games & App...
 
JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)
JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)
JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)
 
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
 
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Tomcatの実装から学ぶクラスローダリーク #渋谷JavaTomcatの実装から学ぶクラスローダリーク #渋谷Java
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
 

Similar a Gradleどうでしょう

Jjug 20140430 gradle_basic
Jjug 20140430 gradle_basicJjug 20140430 gradle_basic
Jjug 20140430 gradle_basicTakuma Watabiki
 
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for JavaTDD勉強会キックオフ for Java
TDD勉強会キックオフ for JavaYuta Kawadai
 
Gws 20130315 gradle_handson
Gws 20130315 gradle_handsonGws 20130315 gradle_handson
Gws 20130315 gradle_handsonNobuhiro Sue
 
TDC20111031_Groovy_Geb
TDC20111031_Groovy_GebTDC20111031_Groovy_Geb
TDC20111031_Groovy_GebNobuhiro Sue
 
明日から使えるgradle
明日から使えるgradle明日から使えるgradle
明日から使えるgradlekimukou_26 Kimukou
 
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDEdcubeio
 
今すぐブラウザでES6を使おう
今すぐブラウザでES6を使おう今すぐブラウザでES6を使おう
今すぐブラウザでES6を使おうHayashi Yuichi
 
脱・独自改造! GebでWebDriverをもっとシンプルに
脱・独自改造! GebでWebDriverをもっとシンプルに脱・独自改造! GebでWebDriverをもっとシンプルに
脱・独自改造! GebでWebDriverをもっとシンプルにHiroko Tamagawa
 
Springでdao 20070413
Springでdao 20070413Springでdao 20070413
Springでdao 20070413Funato Takashi
 
Groovy base gradle_20130309
Groovy base gradle_20130309Groovy base gradle_20130309
Groovy base gradle_20130309Nobuhiro Sue
 
SDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireSDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireAkio Katayama
 
Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22Yohei Sasaki
 
C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)Takuya Kawabe
 
Gws 20120521 gradle
Gws 20120521 gradleGws 20120521 gradle
Gws 20120521 gradleNobuhiro Sue
 
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Javaどこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷JavaToshiaki Maki
 

Similar a Gradleどうでしょう (20)

Jjug 20140430 gradle_basic
Jjug 20140430 gradle_basicJjug 20140430 gradle_basic
Jjug 20140430 gradle_basic
 
Grails 2.0.0.M1の話
Grails 2.0.0.M1の話 Grails 2.0.0.M1の話
Grails 2.0.0.M1の話
 
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for JavaTDD勉強会キックオフ for Java
TDD勉強会キックオフ for Java
 
Gws 20130315 gradle_handson
Gws 20130315 gradle_handsonGws 20130315 gradle_handson
Gws 20130315 gradle_handson
 
TDC20111031_Groovy_Geb
TDC20111031_Groovy_GebTDC20111031_Groovy_Geb
TDC20111031_Groovy_Geb
 
Gradle handson
Gradle handsonGradle handson
Gradle handson
 
明日から使えるgradle
明日から使えるgradle明日から使えるgradle
明日から使えるgradle
 
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDE
 
今すぐブラウザでES6を使おう
今すぐブラウザでES6を使おう今すぐブラウザでES6を使おう
今すぐブラウザでES6を使おう
 
脱・独自改造! GebでWebDriverをもっとシンプルに
脱・独自改造! GebでWebDriverをもっとシンプルに脱・独自改造! GebでWebDriverをもっとシンプルに
脱・独自改造! GebでWebDriverをもっとシンプルに
 
Springでdao 20070413
Springでdao 20070413Springでdao 20070413
Springでdao 20070413
 
Groovy base gradle_20130309
Groovy base gradle_20130309Groovy base gradle_20130309
Groovy base gradle_20130309
 
SDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireSDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 Whire
 
MoteMote Compiler Plugin
MoteMote Compiler PluginMoteMote Compiler Plugin
MoteMote Compiler Plugin
 
Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22
 
C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)
 
scala-kaigi1-sbt
scala-kaigi1-sbtscala-kaigi1-sbt
scala-kaigi1-sbt
 
G * magazine 0
G * magazine 0G * magazine 0
G * magazine 0
 
Gws 20120521 gradle
Gws 20120521 gradleGws 20120521 gradle
Gws 20120521 gradle
 
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Javaどこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
 

Más de Takuma Watabiki

「普通の設計」をするということ
「普通の設計」をするということ「普通の設計」をするということ
「普通の設計」をするということTakuma Watabiki
 
バックエンドのエンジニアがiOSアプリ開発をやってみて思うこと - フロントエンドのアーキテクチャの考察 -
バックエンドのエンジニアがiOSアプリ開発をやってみて思うこと - フロントエンドのアーキテクチャの考察 -バックエンドのエンジニアがiOSアプリ開発をやってみて思うこと - フロントエンドのアーキテクチャの考察 -
バックエンドのエンジニアがiOSアプリ開発をやってみて思うこと - フロントエンドのアーキテクチャの考察 -Takuma Watabiki
 
『現場で役立つシステム設計の原則』は一般的なSI現場で役立つのか?
『現場で役立つシステム設計の原則』は一般的なSI現場で役立つのか?『現場で役立つシステム設計の原則』は一般的なSI現場で役立つのか?
『現場で役立つシステム設計の原則』は一般的なSI現場で役立つのか?Takuma Watabiki
 
Grailsでドメイン駆動設計を実践する時の勘所
Grailsでドメイン駆動設計を実践する時の勘所Grailsでドメイン駆動設計を実践する時の勘所
Grailsでドメイン駆動設計を実践する時の勘所Takuma Watabiki
 
Spring in-summer-gradle-hands on-withanswers
Spring in-summer-gradle-hands on-withanswersSpring in-summer-gradle-hands on-withanswers
Spring in-summer-gradle-hands on-withanswersTakuma Watabiki
 
システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法Takuma Watabiki
 
スーパー戦隊進化論
スーパー戦隊進化論スーパー戦隊進化論
スーパー戦隊進化論Takuma Watabiki
 
G*におけるソフトウェアテスト・シーズンIII
G*におけるソフトウェアテスト・シーズンIIIG*におけるソフトウェアテスト・シーズンIII
G*におけるソフトウェアテスト・シーズンIIITakuma Watabiki
 

Más de Takuma Watabiki (15)

「普通の設計」をするということ
「普通の設計」をするということ「普通の設計」をするということ
「普通の設計」をするということ
 
バックエンドのエンジニアがiOSアプリ開発をやってみて思うこと - フロントエンドのアーキテクチャの考察 -
バックエンドのエンジニアがiOSアプリ開発をやってみて思うこと - フロントエンドのアーキテクチャの考察 -バックエンドのエンジニアがiOSアプリ開発をやってみて思うこと - フロントエンドのアーキテクチャの考察 -
バックエンドのエンジニアがiOSアプリ開発をやってみて思うこと - フロントエンドのアーキテクチャの考察 -
 
『現場で役立つシステム設計の原則』は一般的なSI現場で役立つのか?
『現場で役立つシステム設計の原則』は一般的なSI現場で役立つのか?『現場で役立つシステム設計の原則』は一般的なSI現場で役立つのか?
『現場で役立つシステム設計の原則』は一般的なSI現場で役立つのか?
 
Grailsでドメイン駆動設計を実践する時の勘所
Grailsでドメイン駆動設計を実践する時の勘所Grailsでドメイン駆動設計を実践する時の勘所
Grailsでドメイン駆動設計を実践する時の勘所
 
JGGUG Community LT 2016
JGGUG Community LT 2016JGGUG Community LT 2016
JGGUG Community LT 2016
 
Spring in-summer-gradle-hands on-withanswers
Spring in-summer-gradle-hands on-withanswersSpring in-summer-gradle-hands on-withanswers
Spring in-summer-gradle-hands on-withanswers
 
システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法
 
Spock's world
Spock's worldSpock's world
Spock's world
 
スーパー戦隊進化論
スーパー戦隊進化論スーパー戦隊進化論
スーパー戦隊進化論
 
Gws in fukuoka
Gws in fukuokaGws in fukuoka
Gws in fukuoka
 
Devsumi2012 JGGUG LT
Devsumi2012 JGGUG LTDevsumi2012 JGGUG LT
Devsumi2012 JGGUG LT
 
Spockを使おう!
Spockを使おう!Spockを使おう!
Spockを使おう!
 
G*Magazineを読もう
G*Magazineを読もうG*Magazineを読もう
G*Magazineを読もう
 
G*におけるソフトウェアテスト・シーズンIII
G*におけるソフトウェアテスト・シーズンIIIG*におけるソフトウェアテスト・シーズンIII
G*におけるソフトウェアテスト・シーズンIII
 
Groovyノススメ
GroovyノススメGroovyノススメ
Groovyノススメ
 

Gradleどうでしょう