how about gradle?

26
Gradle 2011-02-24 g*workshop NAKANO Yasuharu (a.k.a. nobeans) http://www.flickr.com/photos/psyberartist/5112723654/

Upload: yasuharu-nakano

Post on 15-Jan-2015

2.678 views

Category:

Documents


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: How about Gradle?

Gradle

2011-02-24 g*workshopNAKANO Yasuharu (a.k.a. nobeans)

http://www.flickr.com/photos/psyberartist/5112723654/

Page 2: How about Gradle?

Who am I?✓氏名:中野 靖治(a.k.a nobeans)✓所属:NTTソフトウェア株式会社✓ブログ:豆無日記 http://d.hatena.ne.jp/nobeans/✓さっきの上原さんとGroovyServ作ってます✓Groovyの起動時間を超速に!!

Page 3: How about Gradle?

$ time groovy -e 'println "Hello, world!";'Hello, world!

real 0m1.806suser 0m1.321ssys 0m0.171s

$ time groovyclient -e 'println "Hello, world!";'Hello, world!

real 0m0.029suser 0m0.001ssys 0m0.002s

Page 4: How about Gradle?

$ time groovyserverGROOVY: /Users/ynak/Developer/runtime/groovy/bin/groovyGROOVYSERV_HOME: /usr/local/Cellar/groovyserv/0.5/libexecstarting....groovyserver 71209(1961) is successfully started

real 0m5.038suser 0m0.015ssys 0m0.048s

Page 5: How about Gradle?

Gradle is...����������

Page 6: How about Gradle?

Better Ant

http://www.flickr.com/photos/sanchom/4488333758/

#$-�����$�

Page 7: How about Gradle?

BetterMaven

#$-�������%

Page 8: How about Gradle?

要は、プロジェクト管理やビルドを自動化するツール

Page 9: How about Gradle?

Basic of Gradle✓build.gradleにGroovyのDSLとして書く✓コンパイル、テスト等は標準タスクを実行するだけ✓独自タスクの定義も簡単✓普通にGroovyコードが書ける!✓実は、実装の大半はJavaで書かれている

✓http://gradle.org/

$ find . -name '*.java' | grep -vi test | wc -l 1288$ find . -name '*.groovy' | grep -vi test | wc -l 170

Page 10: How about Gradle?

!"#$%&'(")'(%*"+(,+

-)'(%*

-)./01'(2%3%"4567869:7;

-)./01'(<$..3=

-0$.)(,,>(,.?$)(,

-)'%,,(,

-)./01'(7(,+2%3%

-)./01'(7(,+<$..3=

-0$.)(,,7(,+>(,.?$)(,

-+(,+@'%,,(,

-+(,+

A4BC9"D4@@;DDE4C

7.+%'"+1/(-"FFGHIJ",(),

Page 11: How about Gradle?

+%,K"L(''."MM"N

""""0$1*+'*"OP(''.Q"R.$'&"SO

T

!"#$%&'("L(''.

-L(''.

P(''.Q"R.$'&"S

A4BC9"D4@@;DDE4C

7.+%'"+1/(-"JGUFV",(),

Page 12: How about Gradle?

Antとの関係✓Antの柔軟性が捨てがたい?✓Gradleなら...✓Groovyで普通にロジックが書ける✓Antタスクも普通に呼べる✓やりたい放題✓Groovyの記述パワーで簡潔に収まる

http://www.flickr.com/photos/christianhaugen/3436086529/

Page 13: How about Gradle?

task compile << { ant.javac( srcdir: "src/main/java", classpath: configurations.compile.asPath, includeantruntime: false )}

Page 14: How about Gradle?

Mavenとの関係✓ディレクトリ構成は同じ✓気軽に試せる✓依存ライブラリ管理✓Ivy経由でMavenリポジトリを活用!

✓Mavenよりもマルチプロジェクトのサポートが強力

http://www.flickr.com/photos/ngmmemuda/4166182931/

Page 15: How about Gradle?

repositories { mavenCentral() mavenRepo urls: [ "http://snapshots.repository.codehaus.org/", "http://repository.codehaus.org/", ]}dependencies { groovy 'org.codehaus.groovy:groovy:1.7.7' testCompile 'junit:junit:4.8.2'}

Page 16: How about Gradle?

Plugin×Plugin✓色々な機能がプラグインとして提供されている✓Java  Javaのビルドとか✓Groovy Groovyの〃✓Scala  Scalaの〃✓Maven リポジトリへのデプロイとか✓OSGi  バンドル生成とか✓Eclipse Eclipse設定ファイルの生成とか✓もちろん自分でも簡単にプラグインがかける✓書いたことないけど

http://www.flickr.com/photos/horiavarlan/4273913228/

Page 17: How about Gradle?

daemon mode✓--daemonオプションをつけて実行するだけ✓プロセスが常駐して次回から起動の待ち時間が短縮される!✓GroovyServっぽい!!✓kobo-commonsで比較してみた✓gradle test ==> 約6秒✓gradle test --daemon ==> 約2秒

✓まだ実験的機能だけど、個人的に大ヒットhttp://www.flickr.com/photos/fdecomite/3346774343

Page 19: How about Gradle?

Jenkinsおじさんともお友達✓Gradleプラグインで簡単にタスクが呼び出せる

Page 20: How about Gradle?

http://www.flickr.com/photos/romainguy/783719255/

Groovy使いなら迷わずGradleだよねー

※写真はイメージです

Page 21: How about Gradle?

というのは当然ですが

Page 22: How about Gradle?

すべてのJava使いは、潜在的なGradleユーザ

Page 23: How about Gradle?

AntでXMLベースのタスク記述に疲れた人

http://www.flickr.com/photos/wordridden/3096119086/

※写真はイメージです

Page 24: How about Gradle?

http://www.flickr.com/photos/shellache/4731699988/

Mavenの暗黒面に落ちかけている人

�����(*)�1�&�+,'/��!���+," �� �'.0���%���

Page 25: How about Gradle?

http://www.flickr.com/photos/turyddu/2682923190/

Gradle

Page 26: How about Gradle?

“Gray doll”

It’s good time forFirst Contact with

http://www.flickr.com/photos/psyberartist/5112723654/