Gradleなんとなくわかってきた(その3)

antっぽくしたりスタンドアロンで動くようにしたりと邪道な事をしてきたけど,ここらでgradle本来の使い方でやってみる。なので,プロジェクトのレイアウトから手を加えて,gradleの都合のよい形に直すよ。

#現物はこちら。→ GitHub - masanobuimai/ant-sample-project at e2ef2d17cab61bea2878d73b10ea44e93c28f11c


gradle標準に合わせると「build.gradle」もずいぶんシンプルになる。基本的に「プラグインの指定/依存ライブラリの指定/オプションの指定」で完了。ようはmavenのpomみたいなもんなんだけど,pomよりマシに見えるのはGradle DSLのお陰なんだろうな。


ちなみに,build.gradleはこんな感じ。

// apply plugin: 'java' としなくても,以下のようにまとめて書ける
apply {
  plugin 'java'
  plugin 'war'
  plugin 'jetty'
}

// jarファイルの名前
archivesBaseName = 'sample-apps'
// javacのオプションに encoding=UTF-8 を追加する
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'

// mavenリポジトリを利用する
repositories {
  mavenCentral()
}

dependencies {
  testCompile 'junit:junit:4.10'
}

// checkstyleとfindbugsなどインスペクション系の設定
apply {
  plugin 'checkstyle'
  plugin 'findbugs'
  plugin 'pmd'
  plugin 'jdepend'
}

// オプションを一括指定(エラーが出てもチェックを進める)
[checkstyleMain, checkstyleTest, findbugsMain, findbugsTest, pmdMain, pmdTest]*.ignoreFailures = true

// Coberturaプラグインの設定
//   https://github.com/valkolovos/gradle_cobertura/wiki
buildscript {
  apply from: 'https://github.com/valkolovos/gradle_cobertura/raw/master/repo/gradle_cobertura/gradle_cobertura/1.2/coberturainit.gradle'
}

特筆すべき点はCoberturaプラグインかな。gradleの標準プラグインにはカバレッジ測定系のものはまだ無いので,自力でなんらかのカバレッジ測定の仕組みを仕込まないといけない(前回のJaCoCoみたいにね)。調べてみるといくつか先達の偉業を知ることができる。たとえば,このあたり。

id:bluepapa32さんのエントリをみて,gradleのタスクのカスタマイズのやり方がわかったので,JaCoCo版を試したワケなんですけどね(完成には至らなかったけど...。
他にも探してみたら「Cobertura Plugin」なんて,そのものズバリなのを見つけたのですよ。
Home · valkolovos/gradle_cobertura Wiki · GitHub


せっかくgradle本来の機能を使いまくろう思ってるんで,どうせならbuild.gradle以外は全部ネットから取ってきたいよね。このCobertura Plugin,graldeのプラグインの勉強にもなるなと思ってチラ見してみたけど,一部Javaのコードとかもあるのね。Groovyだけでプラグイン開発ってできないのかな?その気になったら,ちょっと調べてみよう...。