Contenu connexe Similaire à Gradle a new Generation Build Tool (20) Plus de Shinya Mochida (20) Gradle a new Generation Build Tool2. Who presents this?
● name : mike_neck
● job : no jobs now
● specialized : Java / Groovy / Javascript
● I'm establishing a company specialized at
Groovy products -- Grails, Gradle, SprinG
roo.
● And I'm creating FxJsJUnit -- Javascript
testing framework with JavaFX.
3. Agender
● What's Gradle
● Comparison with Ant, Maven
● How to install?
● Let's make Web Application!
● Task customization
● Convention Properties
4. Agender
● What's Gradle
● Comparison with Ant, Maven
● How to install?
● Let's make Web Application!
● Task customization
● Convention Properties
6. Agender
● What's Gradle
● Comparison with Ant, Maven
● How to install?
● Let's make Web Application!
● Task customization
● Convention Properties
9. Gradle ... 簡潔!
apply plugin : 'java'
group = 'org.mikeneck.sample'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.6
targetCompatibility = 1.6
10. Agender
● What's Gradle
● Comparison with Ant, Maven
● How to install?
● Let's make Web Application!
● Task customization
● Convention Properties
11. How to install? (1)
● Macの人
○ Brewを使っている人
■ sudo brew install gradle
○ Mac Ports使っている人
■ sudo port install gradle
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. 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. 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. How to install? (5)
● インストールの確認
○ 適当なディレクトリー・フォルダーにて以下のコマンドを実
行する
$ gradle --version
● バージョンが表示されればおk。
17. Do you have trouble?
● Java(1.6以上)はインストールされてますか?
● 環境変数JAVA_HOMEは設定されていますか?
● 環境変数GRADLE_HOMEは設定されています
か?
● 環境変数PATHを壊していませんか?
● Windowsのコードページは932ですか?
18. Agender
● What's Gradle
● Comparison with Ant, Maven
● How to install?
● Let's make Web Application!
● Task customization
● Convention Properties
21. 2.build.gradle
apply plugin : 'java'
apply plugin : 'idea'
apply plugin : 'eclipse'
apply plugin : 'war'
apply plugin : 'jetty'
repositories { mavenCentral() }
dependencies {
compile 'org.apache.geronimo.specs:geronimo-servlet_2.5_spec:1.2'
testCompile 'junit:junit:4.10'
}
sourceCompatibility = 1.6
targetCompatibility = 1.6
31. Agender
● What's Gradle
● Comparison with Ant, Maven
● How to install?
● Let's make Web Application!
● Task customization
● Convention Properties
33. タスクをカスタマイズ
● カスタムタスクの作成
/** task taskName はタスクを新規に定義 **/
task customTask << { println 'do something' }
customTask { println 'load task' }
customTask.doFirst { println 'do first' }
customTask.doLast { println 'do last' }
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' }
36. タスクをカスタマイズ
● タスクのライフサイクルとイディオムを覚えておこ
う
taskObject closure : Gradle起動時に実行する処理
customTask.doFirst closure : 最初に実行する処理
(後に追加した処理のほうが先に実行される)
customTask.doLast closure : 最後に実行する処理
(Left Shift と同意)
taskObject << closure : 最後に実行する処理を追加
(後に追加した処理の方が後に実行される)
37. Agender
● What's Gradle
● Comparison with Ant, Maven
● How to install?
● Let's make Web Application!
● Task customization
● Convention Properties
43. 解答例
def langs = ['java']
task structure << {
project.sourceSets.each { set ->
langs.each { lang ->
ant.mkdir dir : "src/${set.name}/${lang}"
}
}
}
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