検索
連載

ビルドツールGradleのインストールと使い方、Jenkins/Git連携小山博史のJavaを楽しむ(18)(4/5 ページ)

オープンソースのビルドツール「Gradle」の主な特長やLinux/Windowsでの環境構築方法、さまざまな使い方に加え、CI/バージョン管理との連携方法を解説します。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

さまざまなGradleタスクの使い方

 簡単なプロジェクトのビルドができたので、ここからはタスクの定義方法や追加方法を見てみましょう。ここでは、gradleコマンドを使います。gradlewが使えるプロジェクトとして用意してgradlewコマンドを使っても構いません。

 また、build.gradleは実際のところGroovyのプログラムなので、正確に理解するには、Groovyについての知識が必要ですが、今回は文法事項を理解するよりも、どんな機能があるかを知ることを優先して、細かい説明まではしない方針とします。

 なお、本節はGradleのドキュメントに含まれる「Chapter 6. Build Script Basics」を参考にしました。

タスク間の依存関係を指定

 あるタスクAを実行するには、事前に実行しておく必要があるタスクBがあるとします。こういったタスク間の依存関係を指定したいときがあります。そんなときは「dependsOn」を使います。

task taskA(dependsOn: 'taskB') << {
  println "taskA"
}
task taskB << {
  println 'taskB'
}

 なお、「'taskB'」と指定すると、依存関係で指定するタスクは後で記述してもいいです。「taskB」と指定することもできますが、その場合はtaskAの前にtaskBの記述をしておく必要があります。

 実行結果は次のようになります。taskAを実行すると先にtaskBが実行されます。

$ gradle -q taskA
taskB
taskA

動的なタスクの生成と利用

 似たようなタスクをたくさん用意したいことがあります。Gradleでは、タスクの定義自体を動的にすることができます。次の例は、task0、task1、task2というタスクを生成する記述です。それぞれのタスクは自分の番号をコンソールへ出力する処理です。

3.times {
  i -> task "task$i" << {
    println "$i"
  }
}

 「3.times」の「3」はNumber型の値です。GroovyではNumberクラスに「times(Closure c)」(参考:Number (Groovy JDK))というメソッドがあります。0から始まる添字の値が引数に指定した処理に渡されるので、これを使って処理を記述できます。ここでは、添字の値「i」に応じて、「task$i」のタスクを生成する処理を記述しています。

 task0とtask2を実行すると、次のようになります。

$ gradle -q task0
 0
$ gradle -q task2
 2

タスクへ後付けで処理を追加

 Gradleでは、後付けでタスクへ処理を追加できます。先ほど作成したtask0、task1、task2のうち、task1へ処理を追加してみましょう。TaskクラスのAPIは「Task (Gradle API 1.11)」にありますから、詳細は、そちらを参照してください。

task1.doFirst {
  println 'task1-0'
}
task1.doLast {
  println 'task1-9'
}
task1 << {
  println 'task1-a'
}

 doFirstメソッドを使うと、すでに登録されている処理の前に指定した処理が挿入されます。doLastメソッドを使うと、すでに登録されている処理の最後に指定した処理が挿入されます。演算子「<<」は、doLastメソッドのエイリアスなので、doLastメソッドと同様の結果となります。

 上記を追加してからtask1を実行すると、結果は次のようになります。

$ gradle -q task1
task1-0
1
task1-9
task1-a

デフォルトタスクの指定

 タスクを指定しないでビルドをした場合に、デフォルトのタスクが動くようにしたいことはよくあります。そのような場合は、defaultTasksを使います。先ほどのbuild.gradleへ下記を追加します。

defaultTasks 'task0', 'task2'

 gradleコマンドを実行する時にタスクを指定しないと、デフォルトタスクとして指定したtask0とtask2が順番に実行されて、結果は次のようになります。

$ gradle -q
 0
 2

GradleとJenkins、Gitを連携してみよう

 ビルドツールのCIでの利用方法も気になるでしょう。GradleをJenkinsで使ってみましょう。Jenkinsは簡単にインストールができます。

 「Welcome to Jenkins CI! | Jenkins CI」から、Java Web Archive(.war)の「Latest and greatest」をクリックしてWARファイル「jenkins.war」をダウンロードします。

Jenkinsの起動

 jenkinsディレクトリを作成して、先ほど作成したprojjava01ディレクトリをjenkinsディレクトリへコピーします。また、ダウンロードしたjenkins.warもjenkinsディレクトリへコピーします。

$ mkdir jenkins
$ mv ~/Downloads/jenkins.war jenkins/
$ cp -r projjava01/ jenkins/

 Jenkinsを実行するには下記のようにします。

$ cd jenkins
$ java -jar jenkins.war

 Webブラウザーで「http://localhost:8080/」へアクセスすると、Jenkinsのダッシュボードが表示されます。そこで[Jenkinsの管理]をクリックします。

 [プラグインの管理]を開きます。

 「利用可能]タブをクリックします。[フィルター]に「Git Plugin」と入力して表示される一覧から、「Git Plugin」をチェックし、[再起動せずにインストール]をクリックします。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る