Enviar pesquisa
Carregar
Groovy base gradle_20130309
•
4 gostaram
•
2,280 visualizações
Nobuhiro Sue
Seguir
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 24
Recomendados
Gws 20130315 gradle_handson
Gws 20130315 gradle_handson
Nobuhiro Sue
Groovyの紹介20130323
Groovyの紹介20130323
Yasuharu Hayami
The History of Groovy #GroovyBase
The History of Groovy #GroovyBase
kyon mm
Gws 20120521 gradle
Gws 20120521 gradle
Nobuhiro Sue
Read Groovy Compile process(Groovy Benkyoukai 2013)
Read Groovy Compile process(Groovy Benkyoukai 2013)
Uehara Junji
Groovy Shell Scripting 2015
Groovy Shell Scripting 2015
Uehara Junji
Java開発の強力な相棒として今すぐ使えるGroovy
Java開発の強力な相棒として今すぐ使えるGroovy
Yasuharu Nakano
Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUG
Uehara Junji
Recomendados
Gws 20130315 gradle_handson
Gws 20130315 gradle_handson
Nobuhiro Sue
Groovyの紹介20130323
Groovyの紹介20130323
Yasuharu Hayami
The History of Groovy #GroovyBase
The History of Groovy #GroovyBase
kyon mm
Gws 20120521 gradle
Gws 20120521 gradle
Nobuhiro Sue
Read Groovy Compile process(Groovy Benkyoukai 2013)
Read Groovy Compile process(Groovy Benkyoukai 2013)
Uehara Junji
Groovy Shell Scripting 2015
Groovy Shell Scripting 2015
Uehara Junji
Java開発の強力な相棒として今すぐ使えるGroovy
Java開発の強力な相棒として今すぐ使えるGroovy
Yasuharu Nakano
Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUG
Uehara Junji
enterprise grails challenge, 2013 Summer
enterprise grails challenge, 2013 Summer
Uehara Junji
Markup Template Engine introduced Groovy 2.3
Markup Template Engine introduced Groovy 2.3
Uehara Junji
Introduce Groovy 2.3 trait
Introduce Groovy 2.3 trait
Uehara Junji
New features of Groovy 2.0 and 2.1
New features of Groovy 2.0 and 2.1
Uehara Junji
Jjug 20140430 gradle_basic
Jjug 20140430 gradle_basic
Takuma Watabiki
Indy(Invokedynamic) and Bytecode DSL and Brainf*ck
Indy(Invokedynamic) and Bytecode DSL and Brainf*ck
Uehara Junji
groovy 2.1.0 20130118
groovy 2.1.0 20130118
Uehara Junji
Groovy indy 20120222
Groovy indy 20120222
Nobuhiro Sue
Gradleどうでしょう
Gradleどうでしょう
Takuma Watabiki
Spring in-summer-gradle-hands on-withanswers
Spring in-summer-gradle-hands on-withanswers
Takuma Watabiki
GroovyServ concept, how to use and outline.
GroovyServ concept, how to use and outline.
Uehara Junji
ClojureでElectronアプリを作ろう
ClojureでElectronアプリを作ろう
Kazuhiro Hara
システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法
Takuma Watabiki
node-gypを使ったネイティブモジュールの作成
node-gypを使ったネイティブモジュールの作成
shigeki_ohtsu
Jjug 20140430 gradle_advanced
Jjug 20140430 gradle_advanced
Masatoshi Hayashi
Grailsのススメ(仮)
Grailsのススメ(仮)
Tsuyoshi Yamamoto
GContractsの基礎
GContractsの基礎
Takahiro Sugiura
Maven2 プラグイン入門
Maven2 プラグイン入門
guestd4898b
Git flowの活用事例
Git flowの活用事例
Hirohito Kato
明日から使えるgradle
明日から使えるgradle
kimukou_26 Kimukou
G * magazine 0
G * magazine 0
Tsuyoshi Yamamoto
Android アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステム
Yu Nobuoka
Mais conteúdo relacionado
Mais procurados
enterprise grails challenge, 2013 Summer
enterprise grails challenge, 2013 Summer
Uehara Junji
Markup Template Engine introduced Groovy 2.3
Markup Template Engine introduced Groovy 2.3
Uehara Junji
Introduce Groovy 2.3 trait
Introduce Groovy 2.3 trait
Uehara Junji
New features of Groovy 2.0 and 2.1
New features of Groovy 2.0 and 2.1
Uehara Junji
Jjug 20140430 gradle_basic
Jjug 20140430 gradle_basic
Takuma Watabiki
Indy(Invokedynamic) and Bytecode DSL and Brainf*ck
Indy(Invokedynamic) and Bytecode DSL and Brainf*ck
Uehara Junji
groovy 2.1.0 20130118
groovy 2.1.0 20130118
Uehara Junji
Groovy indy 20120222
Groovy indy 20120222
Nobuhiro Sue
Gradleどうでしょう
Gradleどうでしょう
Takuma Watabiki
Spring in-summer-gradle-hands on-withanswers
Spring in-summer-gradle-hands on-withanswers
Takuma Watabiki
GroovyServ concept, how to use and outline.
GroovyServ concept, how to use and outline.
Uehara Junji
ClojureでElectronアプリを作ろう
ClojureでElectronアプリを作ろう
Kazuhiro Hara
システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法
Takuma Watabiki
node-gypを使ったネイティブモジュールの作成
node-gypを使ったネイティブモジュールの作成
shigeki_ohtsu
Jjug 20140430 gradle_advanced
Jjug 20140430 gradle_advanced
Masatoshi Hayashi
Grailsのススメ(仮)
Grailsのススメ(仮)
Tsuyoshi Yamamoto
GContractsの基礎
GContractsの基礎
Takahiro Sugiura
Maven2 プラグイン入門
Maven2 プラグイン入門
guestd4898b
Git flowの活用事例
Git flowの活用事例
Hirohito Kato
Mais procurados
(19)
enterprise grails challenge, 2013 Summer
enterprise grails challenge, 2013 Summer
Markup Template Engine introduced Groovy 2.3
Markup Template Engine introduced Groovy 2.3
Introduce Groovy 2.3 trait
Introduce Groovy 2.3 trait
New features of Groovy 2.0 and 2.1
New features of Groovy 2.0 and 2.1
Jjug 20140430 gradle_basic
Jjug 20140430 gradle_basic
Indy(Invokedynamic) and Bytecode DSL and Brainf*ck
Indy(Invokedynamic) and Bytecode DSL and Brainf*ck
groovy 2.1.0 20130118
groovy 2.1.0 20130118
Groovy indy 20120222
Groovy indy 20120222
Gradleどうでしょう
Gradleどうでしょう
Spring in-summer-gradle-hands on-withanswers
Spring in-summer-gradle-hands on-withanswers
GroovyServ concept, how to use and outline.
GroovyServ concept, how to use and outline.
ClojureでElectronアプリを作ろう
ClojureでElectronアプリを作ろう
システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法
node-gypを使ったネイティブモジュールの作成
node-gypを使ったネイティブモジュールの作成
Jjug 20140430 gradle_advanced
Jjug 20140430 gradle_advanced
Grailsのススメ(仮)
Grailsのススメ(仮)
GContractsの基礎
GContractsの基礎
Maven2 プラグイン入門
Maven2 プラグイン入門
Git flowの活用事例
Git flowの活用事例
Semelhante a Groovy base gradle_20130309
明日から使えるgradle
明日から使えるgradle
kimukou_26 Kimukou
G * magazine 0
G * magazine 0
Tsuyoshi Yamamoto
Android アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステム
Yu Nobuoka
Gradle再入門.pptx
Gradle再入門.pptx
Tomoyo Takayama
Android App Development with Gradle & Android Studio
Android App Development with Gradle & Android Studio
Soichiro Kashima
Agileツール適合化分科会(構成管理・ビルドツール)
Agileツール適合化分科会(構成管理・ビルドツール)
masanori kataoka
Gradleプラグインを作成してみた
Gradleプラグインを作成してみた
shinya sakemoto
Gradleスクリプトを読み解く
Gradleスクリプトを読み解く
Shoichi Matsuda
AndroidStudioはじめました ~Gradle編~
AndroidStudioはじめました ~Gradle編~
Yabata Tomomitsu
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
Makoto Yamazaki
Jenkins と groovy
Jenkins と groovy
Kohsuke Kawaguchi
[社内勉強会]Gradleを使おう
[社内勉強会]Gradleを使おう
hirooooo
gradle2.4のルールベースモデルコンフィギュレーション
gradle2.4のルールベースモデルコンフィギュレーション
Shinya Mochida
JSX Design Overview (日本語)
JSX Design Overview (日本語)
Kazuho Oku
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
TDC20111031_Groovy_Geb
TDC20111031_Groovy_Geb
Nobuhiro Sue
Gradle handson
Gradle handson
Nemoto Yusuke
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
Takashi Okawa
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
Akira Inoue
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
Katsunori Kanda
Semelhante a Groovy base gradle_20130309
(20)
明日から使えるgradle
明日から使えるgradle
G * magazine 0
G * magazine 0
Android アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステム
Gradle再入門.pptx
Gradle再入門.pptx
Android App Development with Gradle & Android Studio
Android App Development with Gradle & Android Studio
Agileツール適合化分科会(構成管理・ビルドツール)
Agileツール適合化分科会(構成管理・ビルドツール)
Gradleプラグインを作成してみた
Gradleプラグインを作成してみた
Gradleスクリプトを読み解く
Gradleスクリプトを読み解く
AndroidStudioはじめました ~Gradle編~
AndroidStudioはじめました ~Gradle編~
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
Jenkins と groovy
Jenkins と groovy
[社内勉強会]Gradleを使おう
[社内勉強会]Gradleを使おう
gradle2.4のルールベースモデルコンフィギュレーション
gradle2.4のルールベースモデルコンフィギュレーション
JSX Design Overview (日本語)
JSX Design Overview (日本語)
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
TDC20111031_Groovy_Geb
TDC20111031_Groovy_Geb
Gradle handson
Gradle handson
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
BazelでビルドしたアプリをGCPにデプロイしようとしてハマった話
Mais de Nobuhiro Sue
Fuse Online Hands-on Guide
Fuse Online Hands-on Guide
Nobuhiro Sue
Fuse Online Hands-on Guide
Fuse Online Hands-on Guide
Nobuhiro Sue
Knative CloudEvents
Knative CloudEvents
Nobuhiro Sue
JTF2018_B30_k8s_operator_nobusue
JTF2018_B30_k8s_operator_nobusue
Nobuhiro Sue
DevLove k8s nobusue 20180711
DevLove k8s nobusue 20180711
Nobuhiro Sue
JSUG20171027-spfingboot-k8s-ocp
JSUG20171027-spfingboot-k8s-ocp
Nobuhiro Sue
Light and shadow of microservices
Light and shadow of microservices
Nobuhiro Sue
Gws 20141024 gradle_intro
Gws 20141024 gradle_intro
Nobuhiro Sue
Jjug 20140430 gradle_intro
Jjug 20140430 gradle_intro
Nobuhiro Sue
Gws 20140418 camel_groovy
Gws 20140418 camel_groovy
Nobuhiro Sue
20140329_kyon_kao_wedding_LT_Groovy
20140329_kyon_kao_wedding_LT_Groovy
Nobuhiro Sue
Gws 20140117 lt
Gws 20140117 lt
Nobuhiro Sue
Gws 20131018 vertx_handson(updated)
Gws 20131018 vertx_handson(updated)
Nobuhiro Sue
クラウド研究会 20120712 BaaS
クラウド研究会 20120712 BaaS
Nobuhiro Sue
Letsgo developer 2012 Continuous Delivery
Letsgo developer 2012 Continuous Delivery
Nobuhiro Sue
ぽんぽこバレー勉強会 20120427
ぽんぽこバレー勉強会 20120427
Nobuhiro Sue
Html5勉強会 20120423
Html5勉強会 20120423
Nobuhiro Sue
G*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+Betamax
Nobuhiro Sue
20111031 MobileWeb at TDC
20111031 MobileWeb at TDC
Nobuhiro Sue
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
Nobuhiro Sue
Mais de Nobuhiro Sue
(20)
Fuse Online Hands-on Guide
Fuse Online Hands-on Guide
Fuse Online Hands-on Guide
Fuse Online Hands-on Guide
Knative CloudEvents
Knative CloudEvents
JTF2018_B30_k8s_operator_nobusue
JTF2018_B30_k8s_operator_nobusue
DevLove k8s nobusue 20180711
DevLove k8s nobusue 20180711
JSUG20171027-spfingboot-k8s-ocp
JSUG20171027-spfingboot-k8s-ocp
Light and shadow of microservices
Light and shadow of microservices
Gws 20141024 gradle_intro
Gws 20141024 gradle_intro
Jjug 20140430 gradle_intro
Jjug 20140430 gradle_intro
Gws 20140418 camel_groovy
Gws 20140418 camel_groovy
20140329_kyon_kao_wedding_LT_Groovy
20140329_kyon_kao_wedding_LT_Groovy
Gws 20140117 lt
Gws 20140117 lt
Gws 20131018 vertx_handson(updated)
Gws 20131018 vertx_handson(updated)
クラウド研究会 20120712 BaaS
クラウド研究会 20120712 BaaS
Letsgo developer 2012 Continuous Delivery
Letsgo developer 2012 Continuous Delivery
ぽんぽこバレー勉強会 20120427
ぽんぽこバレー勉強会 20120427
Html5勉強会 20120423
Html5勉強会 20120423
G*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+Betamax
20111031 MobileWeb at TDC
20111031 MobileWeb at TDC
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
Groovy base gradle_20130309
1.
Groovy基礎勉強会: Gradleの基礎
2013.03.09 須江信洋(@nobusue) http://d.hatena.ne.jp/nobusue https://www.facebook.com/nobuhiro.sue
2.
自己紹介
須江 信洋(すえ のぶひろ) Twitter: @nobusue https://www.facebook.com/nobuhiro.sue 約10年ほどJavaEE関連の仕事をしてます 最近はPhoneGap(Cordova)とかがメイン G*(Groovy関連技術)との関わり JGGUGサポートスタッフ 「プログラミングGROOVY」執筆チーム 「Groovy イン・アクション」翻訳チーム Groovyで作ったBot飼ってます(@hatena_groovy) 2
3.
ビルドツールの進化
パラダイム 手続き的 規約によるビルド ビルド定義 スクリプト Make Gradle XML Ant Maven 3
4.
ビルドツールの進化: epoch1
パラダイム POM(Project規約によるビルド 手続き的 Object Model) ビルド定義 ビルドに「ドメインモデル」を導入 スクリプト Make Gradle XML Ant Maven 4
5.
ビルドツールの進化: epoch2
Gradle Build Language パラダイム ビルドを「言語内DSL」で記述 手続き的 規約によるビルド ドメインモデルをGroovyで自由に操作 ビルド定義 スクリプト Make Gradle XML Ant Maven 5
6.
http://gradle.org/
Ant/Mavenの課題を解決する次世代ビルドツール AntとMavenの「いいとこどり」 2013/3/9現在 HibernateやSpringSourceで使われている 最新は1.4 標準化と柔軟性の両立 Mavenライクな標準ディレクトリ構造を使い、そこから外れ る部分は自由にカスタマイズ可能 依存ライブラリはMavenリポジトリでもローカルJARでも好 きなように定義できる マルチプロジェクトへの対応が容易 ビルドスクリプトはGroovyで記述 DSLによるシンプルかつ可読性の高いビルド定義 条件分岐や繰り返しなど、任意の処理をGroovyで 6
7.
Gradleのビルドスクリプト(例) apply plugin: 'java'
Javaプラグインを適用 repositories { mavenCentral() 依存性解決にMavenリポジトリを利用 } プロダクトコードのコンパイル時の依存先 dependencies { compile( group: 'commons-collections', name: 'commons-collections', version: '3.2') testCompile( テストコードのコンパイル時の依存先 group: 'junit', name: 'junit', version: '4.+') } 7
8.
OK、「gradle test」を実行だ!
Mavenと同様の規約に従って プロダクトコードとテストコードを 配置 8
9.
Gradle DSL
疑問 build.gradleに書いてある”apply”と か”repositories”とか”dependencies”とか何? なんかGroovyスクリプトと違くね? 回答 applyもrepositoriesもdependenciesも実はメ ソッドです(引数のカッコを省略してるだけ) Gradleの文法はGroovyの内部DSLとして定義 9
10.
今日のお題: Gradleの基礎
「基礎とは入門ではない」 by @kyon_mm 入門編は別の機会に Gradleの根幹となる「仕組み」を理解したい そのためには、プラグインを作ってみるのが 早道だと考えます プラグインを開発するには、Gradleのドメインモデ ルやビルドエンジンの仕組みの理解が不可欠 とはいえ、時間も限られますので、とっかりとなる 情報をなめるだけにしておきます 10
11.
Gradle DSLのエントリーポイント
Gradleビルド言語リファレンス http://gradle.monochromeroad.com/docs/ dsl/index.html 11
12.
Gradleの代表オブジェクト
org.gradle.api.Project ビルドスクリプト(build.gradle)に対応 中核となるオブジェクト ビルドスクリプト内では暗黙的に、もしくはproject プロパティで参照 12
13.
Gradleの代表オブジェクト
org.gradle.api.invocation.Gradle 実行中のビルドエンジンに対応 初期化時の情報や、環境情報を保持 Project.getGradle() で取得可能 13
14.
Gradleの代表オブジェクト
org.gradle.api.initialization.Settings settings.gradleに対応 マルチプロジェクト構成時にプロジェクト階層の情 報を保持 14
15.
プラグインへの道(1/2)
カスタムタスクを作る 1. ビルドファイル内にtask{}を作る 2. ビルドファイル内にDefaultTaskのサブクラスを 作る 3. カスタムタスクをbuildSrc/に分離する ⇒依存関係は自動的に解決される 4. スタンドアロンプロジェクトとして分離する ⇒参照側からclasspathに追加する必要あり テスト支援 org.gradle.testfixtures.ProjectBuilder 15
16.
プラグインへの道(2/2)
カスタムプラグインを作る 1. ビルドファイル内にPluginインターフェースの実 装クラスを作る(apply()を実装) 2. プラグインをbuildSrc/に分離する ⇒依存関係は自動的に解決される ⇒マルチプロジェクトの場合はルートに配置 3. スタンドアロンプラグインとして分離する ⇒参照側は依存関係を追加して、apply plugin プラグイン独自プロパティ Extension Container(project.extensions) にJava Beanを追加し、透過的に参照できる 16
17.
タスクとプラグイン
タスク 何らかの「処理」を行うもの Antのタスクを想像してもらえばよいです プラグイン タスク/コンフィグレーション/プロパティ/メソッド/コ ンセプトなどの拡張を含むモジュール 例えばjava-baseプラグインは”sourcesets”と いう概念のみを提供し、Javaプラグインがそれを 利用している メタデータ(META-INF/gradle-plugins)を持つ 17
18.
便利メソッド/プロパティ
file() 相対/絶対パス、Fileオブジェクト、URLなど PathValidationでいろいろ判定可能 files() ファイルのコレクション(filter可能) 引数としてファイルを返すtaskを渡せる fileTree() ファイルのツリー階層をトラバース(visit)可能 Antのpathelement式でinclude/exclude可能 logger SLF4J Loggerのインスタンス 標準出力への出力はQUIETレベルにリダイレクト 18
19.
拡張プロパティ
Gradleのドメインモデルにプロパティを追加する 際には、extプロパティ(extブロック)を使うこと Gradle-1.0M9からこちらが強く推奨されています 現在は互換性のため未定義のプロパティがあってもエ ラーにならないが、警告が出ます ローカル変数(def)と異なり、ドメインモデルのラ イフサイクル全体で利用できます 詳細はこちらの「13.4.2. 拡張プロパティ」を参照 http://gradle.monochromeroad.com/docs/use rguide/writing_build_scripts.html 19
20.
Gradleプラグイン、順調に増殖中
http://wiki. gradle.org /display/G RADLE/Plu gins 20
21.
Gradleと仲良くなるために
Gradle 日本語ドキュメント(@literaliceさん) http://gradle.monochromeroad.com/docs/in dex.html ビルドツールGradle スタートアップガイドの紹介 http://www.ntts.co.jp/publish/column/tec/ja va_03/index.html GVM:the Groovy enVironment Manager http://gvmtool.net/ groovy/grails/gradle/griffon/vert.x 21
22.
おすすめ書籍
“Gradle Effective Implementation Guide” Hubert Klein Ikkink (mrhaki) http://mrhaki.blogspot.de/search/label/Gr adle%3AGoodness の人の本です 22
23.
Gradleに入門したい?
G*ワークショップZ 3/15はGradleハンズオン やります。ぜひご参加ください。 http://jggug.doorkeeper.jp/events/3007 23
24.
ありがとうございました
http://nekofont.upat.jp/ 24