簡単なプロジェクトのビルドができたので、ここからはタスクの定義方法や追加方法を見てみましょう。ここでは、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
ビルドツールのCIでの利用方法も気になるでしょう。GradleをJenkinsで使ってみましょう。Jenkinsは簡単にインストールができます。
「Welcome to Jenkins CI! | Jenkins CI」から、Java Web Archive(.war)の「Latest and greatest」をクリックしてWARファイル「jenkins.war」をダウンロードします。
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.