Gradle入門
-
Upload
orekyuu -
Category
Presentations & Public Speaking
-
view
4.569 -
download
0
description
Transcript of Gradle入門
Gradle 入門今日から始めるビルドツール@orekyuu
ビルドツールってなんだ• 名前の通りビルドを行うツール
• 例としては Ant や Maven などがある Gradle もビルドツールの一つ
Maven
pom.xmlにビルド手順を記述して、コンパイル、テスト、 Javadoc生成などをサポートする。
しかし・・・
pom.xml を書くのが非常に大変・・・
この pom.xml を書く人達を pom 職人と呼ぶこともあるほど。
pom 力たったの 5 か。雑魚め。
Gradle
• Maven のような XML で設定ファイルを書くのではなく、 Groovy と呼ばれる言語で手順を記述
• Gradle Wrapper を使うことでチーム開発が容易に行える
で、 Gradle で何ができるの?• 自動的に必要なライブラリのダウンロード
• 開発環境の生成
• 必要に応じてやりたいことを自分でかける!
Gradle の開発環境を作る
• http://www.gradle.org/から Gradle をダウンロード
• 解凍して適当なフォルダに置く
• gradle_root/bin/ にパスを通しておしまい
• ターミナルで gradle –v を実行して確認
Java プロジェクトを作る• Workspace フォルダを作成
• gradle init –-type java-library をターミナルで実行
Gradle のプロジェクト構成
• src フォルダはこのようなディレクトリにする
• src/main/java/ javaファイルを入れる
src/main/resources/ リソースを配置
src/test/java/ テスト用の java ファイル
src/test/resources/ テスト用リソース
src/main/java フォルダに Hello.java を配置
Hello.java の内容は
class Hello {
public static void main(String[] args) {
System.out.println(“Hello”);
}
}
ビルドしてみる• ワークススペース直下で gradle build を実行
完成品を確認
build/libs/ に jar ファイルが作成される
build/classes/ にクラスファイルが作られる
ライブラリを追加してみるgoogle の guava を追加してみる
build.gradle を編集する
repositories {
mavenCentral()
}
dependencies {
compile 'com.google.guava:guava:11.0.2'
}
Guava を使ってみる
import com.google.common.base.Strings;
class Hello {
public static void main(String[] args) {
System.out.println(Strings.repeat("*", 10));
}
}
Hello.java を上のように変更して gradle build
ライブラリへのパスが通り、無事ビルドが成功しました。
このように手動で必要なライブラリをダウンロードすること無く利用することができます。
次に JUnit を使ったテストを書いてみましょう
Sample クラスを作成
Sample.java
public class Sample {
public String getString() {
return “Sample”;
}
}
テストクラスを作成src/test/java/ に TestSample.java を追加
import org.junit.Test;
import static org.junit.Assert.*;
public class SampleTest {
@Test
public void testGetString() throws Exception {
Sample s = new Sample();
assertEquals("Sample", s.getString());
}
}
JUnit をテスト用のライブラリとして追加
dependencies の中に以下を追加
testCompile group: 'junit', name: 'junit', version: '4.11‘
gradle test を実行
今回の例ではテストが通りますが、失敗のパターンを見ておくのもよいかも
基本は分かった そろそろチーム開発をしようチーム全員に Gradle を入れてもらうのは面倒
そこで Gradle Wrapper を使用する
Wrapper 作成には wrapper タスクを実行する
↓ ターミナルで実行
gralde wrapper
Java プロジェクト作成時に wrapper タスクも実行されるので今回は不要
gradle warapper のファイル
gradlew
gradlew.bat
gradle/wrapper/
gradle-wrapper.jar
gradle-wrapper.properties
Git などのバージョン管理システムを使う場合はこれらを格納する。
GradleWrapper でビルド
ラッパーを使用する場合は gradle ではなく、 gradlew コマンドを使用する
gradlew build を実行してみます
初回実行時のみ Gradle をダウンロードしてきます
デフォルトのタスクだとやりたいことできないんだけど• Groovy を使ってタスクを定義することが可能
• スクリプト言語なので非常に書きやすい
タスクの定義方法
タスク定義の方法
task タスク名 {
doLast {
処理
}
}
Hello World
task hello {
doLast {
println ‘Hello World’
}
}
gradle hello を実行して HelloWorld が出力されれば OK
省略記法
task hello << {
println ‘Hello World’
}
上のように doLast を省略することが可能
変数宣言
型 変数名 = 初期値
int a = 4
型に def を使用することで型を指定せず宣言することができる
// 動きます
def a = 1
a = ‘str’
if - else if – else
if ( 条件 ) {
hoge
} else if( 条件 ) {
huge
} else {
hage
}
while
while ( 条件 ) {
処理
}
for
// よくある for
for(i = 0 ; i < 10 ; i++)
// 範囲を使った for
for(i in 0..9)
// リスト
def list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for(i in list)
リスト操作def list = [1, 2, 3, 4, 5]// リスト宣言
def list = [*1..10]//1 から 10 まで連番のリスト
list[3]// 要素の取り出し
list[-2]// 最後から 2 番目の要素を取り出す
list.reverse()// 逆順
list[-5..-1]// 後ろから数えて 5 番目から最後までの要素を取り出す
list += [11, 12]// リストへの追加
list -= [11, 12]// リストから削除
よく使うプロパティ
タスク名 プロパティ名 用途compileJava
compileTestJava options エンコーディングとかコンパイルオプションとか
jar archiveName jarファイル名を設定する時とか
Test
minHeapSize -Xmsを設定maxHeapSize -Xmxを設定
jvmArgs jvm引数を与える- sourceCompatibility コンパイル時の Javaバージョン- targetCompatibility クラス生成時の Javaバージョン
Gradle との連携
Gradle と IntelliJ IDEA
• IntelliJ IDEA は Jet Brains 社が出している Java の IDE
• 高度で軽いコード補完やバージョン管理ツールとの連携が強い
• Gradle との連携がサポートされている神 IDE !!!
IDEA の場合・・・
Gradle プロジェクトを選択して
プロジェクトの名前をつけると完成
タスク表示機能
タスクの表示機能が備わっている。
右クリックからタスクを実行できる
ショートカットキーでも可
プロジェクト作成直後
このようなかんじ
Jenkins との連携• Gradle と Jenkins の連携もすることが可能です
• 時間がかかるので簡単な紹介のみとします
使用しているプラグイン :Gradle Plugin
Jenkins 側設定例
私は Gradle ・ GitBucket ・ Jenkins を使って
1.IDE から GitBucket のリポジトリに push
2.Jenkins が変更を検知してリポジトリを clone
3.test の実行
4.jar 生成
5. 設定ファイルから名前とバージョンを取得して jar をリネーム
6.javadoc を生成
7. ビルドした jar と javadoc をアップロード
までの処理を自動化しています
Gradle is GOD
• 面倒なところは Gradle に押し付ける!
• 紹介したように手順を自動化すればコード書くことだけに集中できる!
• チーム開発でも、開発環境の統一が簡単になる!
• IDE やその他ツールと合わせることで便利さが更に加速!
積極的に楽していこう!
ありがとうございました