しおしお

IntelliJ IDEAのことなんかを書いてます

Gradleで似たようなタスクをグループ化する

Gradleのグループ化機能を使うと同じ種類位のタスクをグループでまとめられるようになる。
IntelliJを使っている場合、Gradleウィンドウではグループ毎にタスクがまとめられて表示されるので、ビルドスクリプト側でグループ化しておくとIntelliJさんでもタスクが探しやすくなる感じです。

タスクをグループ化するには、タスクのgroupプロパティにグループ名を設定します。

この場合、run_batchletとrun_chunkのタスクがapplicationグループとなる。

task run_batchlet(type: JavaExec) {
  classpath = sourceSets.main.runtimeClasspath
  main = 'org.jberet.se.Main'
  args 'batchlet-next-element-sample'
}

task run_chunk(type: JavaExec) {
  classpath = sourceSets.main.runtimeClasspath
  main = 'org.jberet.se.Main'
  args 'chunk-next-element-sample'
}
[run_batchlet, run_chunk]*.group = 'application'

IntelliJさんのGradleウィンドウでの表示

applicationグループにまとまってますね。
f:id:sioiri:20160506075345p:plain

gradle tasksの結果

こちらも、ちゃんとグループにまとめられています。
ちなみにタスクの説明は、タスクのdescriptionプロパティに設定してあげると表示されるようになります。

Application tasks
-----------------
installApp - Installs the project as a JVM application along with libs and OS specific scripts.
run - Runs this project as a JVM application
run_batchlet
run_chunk

おわり。