Jjug 20140430 gradle_advanced
Upcoming SlideShare
Loading in...5
×
 

Jjug 20140430 gradle_advanced

on

  • 3,085 views

2014/04/30 (水) 19:00 - 21:00 ...

2014/04/30 (水) 19:00 - 21:00
JJUG&JGGUG 共催ナイトセミナ 「4.30 2時間で分かる!次世代ビルドツールの本命Gradleの全貌」
「発展編」 会社で使うGradle

Statistics

Views

Total Views
3,085
Slideshare-icon Views on SlideShare
838
Embed Views
2,247

Actions

Likes
7
Downloads
13
Comments
0

17 Embeds 2,247

http://kikutaro777.hatenablog.com 1001
http://orangeclover.hatenablog.com 653
http://www.java-users.jp 398
http://osyyare.blogspot.jp 123
http://penguincat.info 28
https://twitter.com 15
http://gsbina.com 9
http://s.deeeki.com 4
http://feedly.com 4
http://www.slideee.com 3
http://osyyare.blogspot.com 3
http://www.slidesharenet.org 1
http://www.google.co.jp 1
http://webcache.googleusercontent.com 1
http://translate.googleusercontent.com 1
https://reader.aol.com 1
http://eventdots.jp 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Jjug 20140430 gradle_advanced Jjug 20140430 gradle_advanced Presentation Transcript

    • 発展編:会社で使うGradle 林 政利 (株式会社ドワンゴ) @literalice
    • 会社で使うGradle Gradleは会社でこそ使うもの
    • POMからビルド作成
    • POMからビルド作成 信頼性の高いビルド 気軽なカスタマイズ 既存環境の活用
    • 信頼性の高いビルド
    • 俺のパソコンでは動いて いたのに…
    • Gradleの依存関係キャッシュ管理 repositories { maven { url "http://repo.mycompany.com/maven2" } } dependencies { compile "org.hibernate:hibernate-core:3.6.7.Final" testCompile "junit:junit:4.+" }
    • ~.ivy2cachecom.google.guavaguavajarsguava-11.0.2.jar Gradleのキャッシュパス Ivyのキャッシュパス ~¥.gradle¥caches¥artifacts- 26¥filestore¥com.google.guava¥guava¥11.0.2¥jar¥35 a3c69e19d72743cac83778aecbee68680f63ebguava -11.0.2.jar
    • ビルドの信頼性 += Gradleラッパー Gradleバージョンの管理
    • ビルドツールのバージョンを 上げたらヘンなことになった
    • Gradleの機能追加サイクル 試験的 @Incubating 公開 非推奨 @Deprecate d 削除 代替機能 ’’公開状態の機能は、非推奨とならない限り決して削除されたり意図 的に変更されたりすることはありません。’’ ―― Gradleユーザーガイド付録C 機能のライフサイクル
    • 比較ビルド build.gradle 1.11 1.12
    • apply plugin: "compare- gradle-builds" compareGradleBuilds { sourceBuild { projectDir "." gradleVersion "1.11" } targetBuild { projectDir "." gradleVersion "1.12" } }
    • 信頼性の高いビルド
    • 気軽なカスタマイズ
    • 独自のプラグイン 独自のタスク 独自のビルドルール …
    • プラグイン プロジェクト プラグイン プロジェクト プラグイン プロジェクト プラグイン プロジェクト ビ ル ド ラ イ フ サ イ ク ル pom.xml
    • 独自のプラグイン 独自のタスク … Gradleの場合 XXX.java
    • 気軽なカスタマイズ
    • 既存環境の活用
    • Antタスク pom.xml 社内リポジトリ build.xml
    • 既存のMavenリポジトリを活用 repositories { maven { url "http://repo.mycompany.com/maven2" } } dependencies { compile "org.hibernate:hibernate- core:3.6.7.Final" testCompile "junit:junit:4.+" } Mavenリポジトリ
    • 既存のIvyリポジトリを活用 repositories { ivy { url "http://repo.mycompany.com/repo" } } dependencies { compile "org.hibernate:hibernate- core:3.6.7.Final" testCompile "junit:junit:4.+" } Ivyリポジトリ
    • 既存のライブラリフォルダを活用 repositories { flatDir dir: "libs" } dependencies { compile "org.hibernate:hibernate- core:3.6.7.Final" testCompile "junit:junit:4.+" }
    • 既存のライブラリ管理を活用
    • 既存のAntタスクを活用 ’’build.xmlを利用するよりも、Gradleビルドの 中でAntタスクを使う方がはるかに簡単で強力’’ ―― Gradleユーザーガイド第17章 GradleからAntを使う ’’Gradleでは、Antのタスクはファーストクラ ス・オブジェクトです’’ ―― Gradleユーザーガイド第2章 概要
    • task zip << { ant.zip(destfile:'archive.zip') { fileset(dir: 'src') { include(name: '**.xml') exclude(name: '**.java') } } } 既存のAntタスクを活用 <target name='zip'> <zip destfile= 'archive.zip'> <fileset dir='src'> <include name='**.xml'/> <exclude name='**.java'/> </fileset> </zip> </target> XML版Groovy版
    • 既存のbuild.xmlを活用 ’’Gradleでは、Antのタスクはファーストクラス・オブジェク トです。 さらにおもしろいことに、Antのプロジェクトも またファーストクラス・オブジェクトなのです’’ ―― Gradleユーザーガイド第2章 概要
    • 既存のbuild.xmlを活用 ant.importBuild "build.xml" build.gradle
    • 既存のbuild.xmlを流用 ant.importBuild "build.xml" task war(type: War, dependsOn: "jar") { description = "warファイルを作成します" classpath("dist/lib/sample-ant-project-0.1.jar") webInf { from ("web/WEB-INF") } }
    • 既存のpom.xmlを活用 Maven プラグインは 使えません
    • build.gradle 既存のpom.xmlを活用 pom.xml gradle init --type pom
    • 既存のビルドツールを活用
    • ’’私たちは、ビルドはすべてのチームメン バーに対してできるだけ分かりやすいもので あるべきだと考えています。 (中略) 私たちは、Java世界の住人にとって断然飛び 抜けた分かりやすさを提供するGroovyを選択 しました。’’ ―― Gradleユーザーガイド第2章 概要
    • 既存の知識を活用
    • POMからビルド作成 信頼性の高いビルド 気軽なカスタマイズ 既存環境の活用
    • ご清聴ありがとうございました