
Robert
By: a guest on Nov 18th, 2008 | syntax:
Groovy | size: 1.81 KB | hits: 833 | expires: Never
includeTargets << gant.targets.Clean
def classesDir
= "${buildDir}/classes"
def testSourceDir
= "test"
def reportsDir
= "reports"
def testJarsDir
= "${jarsDir}/test"
def distributables
= "dist"
def distributedJarName
= "simple.jar"
def distributedJarPath
= "${distributables}/${distributedJarName}"
cleanDirectory << ["${buildDir}/**/*", "${distributables}/*"]
def jars
= Ant.
path(id:
'jars') {
fileset(dir: jarsDir) {
include(name: '*.jar')
}
}
def source
= Ant.
path(id:
'source') {
dirset(dir: classesDir)
}
target(initDirs: 'Create all the required directories') {
def dirs
= [buildDir, classesDir, distributables
]
dirs.
each() { Ant.
mkdir(dir: it
) }
}
target(compile: 'Build all the binary class files') {
depends(initDirs)
Ant.javac(srcdir: sourceDir, destdir: classesDir)
Ant.javac(srcdir: testSourceDir, destdir: classesDir) {
classpath() {
path(refid: 'jars')
}
}
}
target(jar: 'Jar up the code') {
Ant.jar(basedir: classesDir,
destfile: distributedJarPath,
excludes: '**/*Test*') {
manifest() {
attribute(name: 'Main-Class',
value: 'example.Hello')
}
}
}
target(test: 'Run the test suite for the code') {
depends(compile)
Ant.junit(haltonfailure: 'yes') {
formatter(type: 'plain')
classpath() {
path(refid: 'jars')
path(refid: 'source')
}
batchtest(todir: reportsDir) {
fileset(dir: "${classesDir}") {
include(name: "**/*Test*")
}
}
}
}
target(dist: 'Create release artefacts') {
depends(test)
depends(jar)
}
target(run: 'Run the distributed jar') {
depends(dist)
Ant.java(jar: distributedJarPath, fork: 'true')
}
target(hello: 'Hello World') {
}
setDefaultTarget(dist)