1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
/*
buildfile for gradle (http://gradle.org/)
*/
apply plugin: 'java'
buildDir = "$projectDir/build-gradle"
dependencies {
compile fileTree(dir: 'lib', include: '*.jar')
}
sourceSets {
main {
java {
srcDir 'src'
}
resources {
srcDir 'src'
}
}
test {
java {
srcDir 'test'
}
resources {
srcDir 'test'
}
}
}
compileJava.options.debugOptions.debugLevel = "source,lines,vars"
project.ext.instrumentDir = "$buildDir/classes_instrumented"
project.ext.coberturaDir = "$projectDir/cobertura"
project.ext.coverageData = "$projectDir/coverage.data"
project.ext.coverageReportDir = "$projectDir/coverage-report"
task instrument (dependsOn: 'compileJava', type: JavaExec) {
inputs.dir compileJava.destinationDir
outputs.dir fileTree(dir: instrumentDir)
classpath = files("$coberturaDir/cobertura.jar", "$coberturaDir/lib/*")
main = 'net.sourceforge.cobertura.instrument.Main'
args "--datafile", "$coverageData"
args "--destination", "$instrumentDir"
doFirst {
FileTree tree = fileTree(dir: "$buildDir/classes/main/")
tree.visit { element ->
args "$buildDir/classes/main/$element.path"
}
}
}
task testCoverage (dependsOn: ['instrument'], type: Test) {
classpath = files("$instrumentDir",
"$coberturaDir/cobertura.jar",
project.sourceSets.test.runtimeClasspath)
systemProperties = ["net.sourceforge.cobertura.datafile":"$coverageData"]
}
testCoverage.outputs.file("$coverageData")
task reportCoverage (type: JavaExec) {
description = "Reports code coverage."
doFirst {
classpath = files("$projectDir/cobertura/cobertura.jar",
"$projectDir/cobertura/lib/*")
main = 'net.sourceforge.cobertura.reporting.Main'
args "--datafile", "$coverageData"
args "--destination", "$coverageReportDir"
args "$projectDir/src/"
}
}
reportCoverage.inputs.file("$coverageData")
reportCoverage.outputs.dir("$coverageReportDir")
reportCoverage.dependsOn testCoverage
/*
TODO: should we really use the compile task for this?
*/
task msgtypes (type: JavaCompile) {
description = "Updates the index of GNUnet message types known to gnunet-java."
classpath = project.sourceSets.main.runtimeClasspath
source = files(project.sourceSets.main.allJava)
options.setCompilerArgs(["-processor", "org.gnunet.construct.MessageIdAnnotationProcessor",
"-proc:only",
"-s", "src"])
destinationDir = file("$buildDir/classes/main/")
}
project.ext.installerFile = "$projectDir/gnunet-java-installer.jar"
task installer (type: Exec) {
description "build an IZPack installer for gnunet-java"
workingDir "$projectDir"
outputs.file("$installerFile")
}
installer.dependsOn "build","javadoc"
installer.outputs.upToDateWhen { false }
installer.doFirst {
def izpack = System.getenv("IZPACK_COMPILER")
if (izpack == null) {
throw new RuntimeException("environment variable IZPACK_COMPILER not defined")
}
installer.commandLine "$izpack", "$projectDir/izpack-installer.xml", "-o", "$installerFile"
}
|