TFSとGradleの連携4:build.gradle作成

Antでのbuild.xmlにあたるGraldeのビルドスクリプト(build.gralde)の作成です。

具体的な作り方はGradleのサイトの内容で大半は確認できますので、ここでは完成版を置いておきます。

def defaultEncoding = ‘UTF-8’

apply plugin: ‘java’
apply plugin: ‘findbugs’
apply plugin: ‘checkstyle’
apply plugin: ‘jacoco’

[compileJava, compileTestJava]*.options*.encoding = defaultEncoding
[findbugsMain, findbugsTest]*.ignoreFailures = true
[checkstyleMain, checkstyleTest]*.ignoreFailures = true

sourceSets {
  main.java.srcDir ‘src’
  test.java.srcDir ‘testsrc’
}

repositories {
  ivy {
    url "http://tfsba01/ivy_repos"
    layout "pattern", {
      artifact "[organisation]/[module]/[revision]/jars/[artifact]-[revision].[ext]"
      artifact "[organisation]/[module]/[revision]/bundles/[artifact]-[revision].[ext]"
      ivy "[organisation]/[module]/[revision]/ivys/ivy-[revision].xml"
    }
  }
}

dependencies {
  testCompile group: ‘junit’, name: ‘junit’, version: ‘4.+’
  testCompile group: ‘org.hamcrest’, name: ‘hamcrest-core’, version: ‘1.+’
  checkstyle group: ‘com.puppycrawl.tools’, name: ‘checkstyle’, version: ‘6.1.1’
}

jar {
  archiveName = ‘GradleSample01.jar’
}

checkstyleMain {
  configFile = file(‘./DefinitionFiles/CheckStyle/EditChecks1.xml’)

  doLast {
    ant.xslt(in: checkstyleMain.reports.xml.destination,
             style: new File(‘DefinitionFiles/CheckStyle/checkstyle-simple.xsl’),
             out: new File(checkstyleMain.reports.xml.destination.parent, ‘main.html’))
  }
}

jacoco {
  toolVersion = "0.7.2.201409121644"
}

jacocoTestReport {
  reports {
    xml.enabled false
    csv.enabled false
  }
}
jacocoTestReport.dependsOn build

test {
  jacoco {
    append = false
  }
}

findbugsMain {
  reports {
    xml.enabled = false
    html.enabled = true
  }
}

task checkstyleTest(overwrite: true) << {}

task findbugsTest(overwrite: true) << {}

大雑把にいうと、
 ・ライブラリのリポジトリを指定
 ・pluginの指定
 ・Taskのプロパティを指定
をすれば動かせるイメージです。
各種プラグインが公開されているので、やりたいなと思ったことは基本できそうです。
内容としては、以前に書いた「TFSでJavaのビルド環境構築 in 2012 その1:概要」とほぼ同じ内容ですが、Gradleのほうがすっきりしている感じです。

次は、ビルド定義の作成です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください