Gradle a newbuild toolgradle 入門
Who presents this?● name : mike_neck● job : no jobs now● specialized : Java / Groovy / Javascript● Im establishing a compa...
Agender●   Whats Gradle●   Comparison with Ant, Maven●   How to install?●   Lets make Web Application!●   Task customizati...
Agender●   Whats Gradle●   Comparison with Ant, Maven●   How to install?●   Lets make Web Application!●   Task customizati...
Whats Gradle● Antの自由さとMavenの秩序を取り入れた次世  代のビルドツール● 人間には優しくないXMLを捨てたビルドツール● ビルドの設定にはGroovy DSLを採用 ○ 設定ファイルはスクリプトに置き換わる ○ 直感的...
Agender●   Whats Gradle●   Comparison with Ant, Maven●   How to install?●   Lets make Web Application!●   Task customizati...
Ant ... 書き方忘れたorz<build default="clean">  <task name="build">     <javac  </task></build>
Maven ... 長い<groupId>org.mikeneck.sample</group><artifactId>gradle-sample</artifactId><version>0.0.1-SNAPSHOT</version><bu...
Gradle ... 簡潔!apply plugin : java group = org.mikeneck.sampleversion = 0.0.1-SNAPSHOT sourceCompatibility = 1.6targetCompa...
Agender●   Whats Gradle●   Comparison with Ant, Maven●   How to install?●   Lets make Web Application!●   Task customizati...
How to install? (1)● Macの人 ○ Brewを使っている人   ■ sudo brew install gradle ○ Mac Ports使っている人   ■ sudo port install gradle
How to install? (2)● xnix系の人 ○ wget http://goo.gl/WJm7L ○ unzip gradle-1.0-milestone-9-all.zip ○ sudo mv gradle-1.0-milest...
How to install? (3)● Macの場合は下記のディレクトリーに入れるのが  いいかも/Library/Frameworks/Gradle.framework/Versions● で、ln -s gradle-milestone-...
How to install? (4)● Windowsの人 ○ http://goo.gl/WJm7L をダウンロード ○ gradle-milestone-9-all.zipを解凍 ○ 作成されたフォルダをどこか適当なフォルダに配置する。 ...
How to install? (5)● インストールの確認  ○ 適当なディレクトリー・フォルダーにて以下のコマンドを実     行する     $ gradle --version     ● バージョンが表示されればおk。
How to install? (6)       うまくいった?
Do you have trouble?● Java(1.6以上)はインストールされてますか?● 環境変数JAVA_HOMEは設定されていますか?● 環境変数GRADLE_HOMEは設定されています  か?● 環境変数PATHを壊していませんか...
Agender●   Whats Gradle●   Comparison with Ant, Maven●   How to install?●   Lets make Web Application!●   Task customizati...
さっそくWebアプリ作ろう1. プロジェクトホームを作成します。2. プロジェクトホームの直下にビルドファイル(build.   gradle)を作ります。3. ideタスクを実行してIDEを開きます。4. Servletを作ります。5. テス...
1.プロジェクトホーム$ mkdir sample-web$ cd sample-web$ vim sample-web
2.build.gradleapply plugin : javaapply plugin : ideaapply plugin : eclipseapply plugin : warapply plugin : jettyrepositori...
3. ide タスクを実行$ gradle idea または $ gradle eclipse
4.Servletをつくります。Web用のプロジェクト構造を作って、Servletを作ります。
5.テストをつくるJMockItを使いたい人はdependenciesに加えましょう。JUnit4でテストを書きます。src/test/java以下のパッケージに記述して下さい。
6.Gradleでテストを実行$ gradle testでテストを実行する。project-home/build/reports/testsにあるindex.htmlにテスト結果が出力される。
こんな感じ
6.Jettyで試す$ gradle jettyRunデフォルトはポート8080で起動される
6.Jettyで試すさっそくつなげてみる
7.warを発行する$ gradle war
7.warを発行するwarファイルはproject-home/build/libs以下に作成されます。
Agender●   Whats Gradle●   Comparison with Ant, Maven●   How to install?●   Lets make Web Application!●   Task customizati...
タスクをカスタマイズ● Gradleの強みはそのカスタマイズ性にもありま  す。 ○ 規約に基づいたプロパティを利用できます。 ○ Groovyの力を借りたカスタマイズが可能です。   ■ テスト実行前にDBに値を登録する   ■ プロジェクト...
タスクをカスタマイズ● カスタムタスクの作成 /** task taskName はタスクを新規に定義 **/task customTask << { println do something } customTask { println lo...
タスクをカスタマイズ● タスクのライフサイクルとイディオムを覚えておこ  うtask customTask << { println do something }customTask { println load task }customTas...
タスクをカスタマイズ● 実行結果 
タスクをカスタマイズ● タスクのライフサイクルとイディオムを覚えておこ  うtaskObject closure    : Gradle起動時に実行する処理customTask.doFirst closure : 最初に実行する処理   (後に...
Agender●   Whats Gradle●   Comparison with Ant, Maven●   How to install?●   Lets make Web Application!●   Task customizati...
規約プロパティを参照する$ gradle properties を実行する
規約プロパティを再設定する例えばコンパイルはJava6で、実行環境はJava5の場合は以下のように sourceCompatibility = 1.6targetCompatibility = 1.5 既存の規約プロパティを上書きする
規約プロパティを利用する例えば依存ライブラリーのパスが欲しい場合 task showPath {    project.configurations.each {        println it.name        println it...
規約プロパティを利用する実行結果
練習規約どおりのディレクトリーツリーを作るタスクを定義してみよう ヒント : ディレクトリーを作る方法  ant.mkdir ( dir : src/main/java )
解答例def langs = [java]task structure << {    project.sourceSets.each { set ->        langs.each { lang ->            ant.mk...
Note● Gradle Home Page  ○ http://www.gradle.org● User Guide  ○ http://www.gradle.     org/docs/current/userguide/userguide...
Enjoy yourproject with Fun!         presented by mike_neck
Upcoming SlideShare
Loading in...5
×

Gradle a new Generation Build Tool

7,838

Published on

Gradleという新しいビルドツールについての説明

Published in: Technology
1 Comment
10 Likes
Statistics
Notes
No Downloads
Views
Total Views
7,838
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
42
Comments
1
Likes
10
Embeds 0
No embeds

No notes for slide

Gradle a new Generation Build Tool

  1. 1. Gradle a newbuild toolgradle 入門
  2. 2. Who presents this?● name : mike_neck● job : no jobs now● specialized : Java / Groovy / Javascript● Im establishing a company specialized at Groovy products -- Grails, Gradle, SprinG roo.● And Im creating FxJsJUnit -- Javascript testing framework with JavaFX.
  3. 3. Agender● Whats Gradle● Comparison with Ant, Maven● How to install?● Lets make Web Application!● Task customization● Convention Properties
  4. 4. Agender● Whats Gradle● Comparison with Ant, Maven● How to install?● Lets make Web Application!● Task customization● Convention Properties
  5. 5. Whats Gradle● Antの自由さとMavenの秩序を取り入れた次世 代のビルドツール● 人間には優しくないXMLを捨てたビルドツール● ビルドの設定にはGroovy DSLを採用 ○ 設定ファイルはスクリプトに置き換わる ○ 直感的に読める設定ファイル
  6. 6. Agender● Whats Gradle● Comparison with Ant, Maven● How to install?● Lets make Web Application!● Task customization● Convention Properties
  7. 7. Ant ... 書き方忘れたorz<build default="clean"> <task name="build"> <javac </task></build>
  8. 8. Maven ... 長い<groupId>org.mikeneck.sample</group><artifactId>gradle-sample</artifactId><version>0.0.1-SNAPSHOT</version><build> <plugins> <plugin> <groupId>org.apache.maven.plugins</...
  9. 9. Gradle ... 簡潔!apply plugin : java group = org.mikeneck.sampleversion = 0.0.1-SNAPSHOT sourceCompatibility = 1.6targetCompatibility = 1.6
  10. 10. Agender● Whats Gradle● Comparison with Ant, Maven● How to install?● Lets make Web Application!● Task customization● Convention Properties
  11. 11. How to install? (1)● Macの人 ○ Brewを使っている人 ■ sudo brew install gradle ○ Mac Ports使っている人 ■ sudo port install gradle
  12. 12. How to install? (2)● xnix系の人 ○ wget http://goo.gl/WJm7L ○ unzip gradle-1.0-milestone-9-all.zip ○ sudo mv gradle-1.0-milestone-9 /path/to/gradle_home ○ export GRADLE_HOME=/path/to/gradle_home/gradle- 1.0-milestone-9 ○ export PATH=$PATH:GRADLE_HOME/bin
  13. 13. How to install? (3)● Macの場合は下記のディレクトリーに入れるのが いいかも/Library/Frameworks/Gradle.framework/Versions● で、ln -s gradle-milestone-9 Current● export GRADLE_HOME=/Library/Frameworks/Gr adle.framework/Versions/Current
  14. 14. How to install? (4)● Windowsの人 ○ http://goo.gl/WJm7L をダウンロード ○ gradle-milestone-9-all.zipを解凍 ○ 作成されたフォルダをどこか適当なフォルダに配置する。 ( 例えば C:¥gradle ) ○ マイコンピューター→プロパティから環境変数設定画面 を開いて以下のとおり設定する。 GRADLE_HOME → C:¥gradle¥gradle-milestone-9 PATH → ;%GRADLE_HOME%¥bin を追加
  15. 15. How to install? (5)● インストールの確認 ○ 適当なディレクトリー・フォルダーにて以下のコマンドを実 行する $ gradle --version  ● バージョンが表示されればおk。
  16. 16. How to install? (6) うまくいった?
  17. 17. Do you have trouble?● Java(1.6以上)はインストールされてますか?● 環境変数JAVA_HOMEは設定されていますか?● 環境変数GRADLE_HOMEは設定されています か?● 環境変数PATHを壊していませんか?● Windowsのコードページは932ですか?
  18. 18. Agender● Whats Gradle● Comparison with Ant, Maven● How to install?● Lets make Web Application!● Task customization● Convention Properties
  19. 19. さっそくWebアプリ作ろう1. プロジェクトホームを作成します。2. プロジェクトホームの直下にビルドファイル(build. gradle)を作ります。3. ideタスクを実行してIDEを開きます。4. Servletを作ります。5. テストを書きます。6. Gradleでテスト実行、Jettyを実行します。7. warを発行します。
  20. 20. 1.プロジェクトホーム$ mkdir sample-web$ cd sample-web$ vim sample-web
  21. 21. 2.build.gradleapply plugin : javaapply plugin : ideaapply plugin : eclipseapply plugin : warapply plugin : jettyrepositories { mavenCentral() }dependencies { compile org.apache.geronimo.specs:geronimo-servlet_2.5_spec:1.2 testCompile junit:junit:4.10}sourceCompatibility = 1.6targetCompatibility = 1.6
  22. 22. 3. ide タスクを実行$ gradle idea または $ gradle eclipse
  23. 23. 4.Servletをつくります。Web用のプロジェクト構造を作って、Servletを作ります。
  24. 24. 5.テストをつくるJMockItを使いたい人はdependenciesに加えましょう。JUnit4でテストを書きます。src/test/java以下のパッケージに記述して下さい。
  25. 25. 6.Gradleでテストを実行$ gradle testでテストを実行する。project-home/build/reports/testsにあるindex.htmlにテスト結果が出力される。
  26. 26. こんな感じ
  27. 27. 6.Jettyで試す$ gradle jettyRunデフォルトはポート8080で起動される
  28. 28. 6.Jettyで試すさっそくつなげてみる
  29. 29. 7.warを発行する$ gradle war
  30. 30. 7.warを発行するwarファイルはproject-home/build/libs以下に作成されます。
  31. 31. Agender● Whats Gradle● Comparison with Ant, Maven● How to install?● Lets make Web Application!● Task customization● Convention Properties
  32. 32. タスクをカスタマイズ● Gradleの強みはそのカスタマイズ性にもありま す。 ○ 規約に基づいたプロパティを利用できます。 ○ Groovyの力を借りたカスタマイズが可能です。 ■ テスト実行前にDBに値を登録する ■ プロジェクト作成前に規約に基づいたディレクトリを作 成する ■ 発行したwarをサーバーにデプロイする
  33. 33. タスクをカスタマイズ● カスタムタスクの作成 /** task taskName はタスクを新規に定義 **/task customTask << { println do something } customTask { println load task }customTask.doFirst { println do first }customTask.doLast { println do last } 
  34. 34. タスクをカスタマイズ● タスクのライフサイクルとイディオムを覚えておこ うtask customTask << { println do something }customTask { println load task }customTask << { println do task }customTask.doFirst { println do first }customTask.doLast { println do last }customTask << { println do lastly } 
  35. 35. タスクをカスタマイズ● 実行結果 
  36. 36. タスクをカスタマイズ● タスクのライフサイクルとイディオムを覚えておこ うtaskObject closure : Gradle起動時に実行する処理customTask.doFirst closure : 最初に実行する処理 (後に追加した処理のほうが先に実行される)customTask.doLast closure : 最後に実行する処理 (Left Shift と同意)taskObject << closure : 最後に実行する処理を追加 (後に追加した処理の方が後に実行される)
  37. 37. Agender● Whats Gradle● Comparison with Ant, Maven● How to install?● Lets make Web Application!● Task customization● Convention Properties
  38. 38. 規約プロパティを参照する$ gradle properties を実行する
  39. 39. 規約プロパティを再設定する例えばコンパイルはJava6で、実行環境はJava5の場合は以下のように sourceCompatibility = 1.6targetCompatibility = 1.5 既存の規約プロパティを上書きする
  40. 40. 規約プロパティを利用する例えば依存ライブラリーのパスが欲しい場合 task showPath { project.configurations.each { println it.name println it.asPath }} 
  41. 41. 規約プロパティを利用する実行結果
  42. 42. 練習規約どおりのディレクトリーツリーを作るタスクを定義してみよう ヒント : ディレクトリーを作る方法 ant.mkdir ( dir : src/main/java )
  43. 43. 解答例def langs = [java]task structure << { project.sourceSets.each { set -> langs.each { lang -> ant.mkdir dir : "src/${set.name}/${lang}" } }}
  44. 44. Note● Gradle Home Page ○ http://www.gradle.org● User Guide ○ http://www.gradle. org/docs/current/userguide/userguide_single. html● DSL Reference ○ http://www.gradle.org/docs/current/dsl/index. html
  45. 45. Enjoy yourproject with Fun! presented by mike_neck
  1. ¿Le ha llamado la atención una diapositiva en particular?

    Recortar diapositivas es una manera útil de recopilar información importante para consultarla más tarde.

×