forked from ibriz/cps_java_contracts
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathbuild.gradle
More file actions
75 lines (62 loc) · 1.92 KB
/
build.gradle
File metadata and controls
75 lines (62 loc) · 1.92 KB
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
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath "foundation.icon:gradle-javaee-plugin:0.8.1"
}
}
def scoreIntegrationTest = new HashMap<String, String>()
task buildContracts(type: Exec) {
workingDir "$projectDir/"
commandLine './gradlew', 'optimizedJar'
}
subprojects {
repositories {
mavenCentral()
}
apply plugin: 'java'
apply plugin: 'jacoco'
apply plugin: 'foundation.icon.javaee'
sourceSets {
intTest {
compileClasspath += sourceSets.main.output
runtimeClasspath += sourceSets.main.output
java {
}
}
}
configurations {
intTestImplementation.extendsFrom testImplementation
intTestAnnotationProcessor.extendsFrom testAnnotationProcessor
intTestRuntimeOnly.extendsFrom testRuntimeOnly
}
java {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
// need to add this option to retrieve formal parameter names
compileJava {
options.compilerArgs += ['-parameters']
}
tasks.named('test') {
// Use JUnit Platform for unit tests.
useJUnitPlatform()
}
scoreIntegrationTest.put('env.props', new File(project(':test-lib').projectDir, 'conf/env.props'))
afterEvaluate { project ->
scoreIntegrationTest.put(project.name, project.getTasks().getByName("optimizedJar").outputJarName)
}
tasks.named("assemble") {
if (project.tasks.findByName("compileIntTestJava")) {
finalizedBy(project.tasks.getByName("compileIntTestJava"))
}
}
gradle.taskGraph.whenReady { taskGraph ->
taskGraph.getAllTasks().eachWithIndex { task, n ->
if (task.name == 'integrationTest') {
scoreIntegrationTest.each { key, val -> task.systemProperty key, val }
}
}
}
}