-
-
Notifications
You must be signed in to change notification settings - Fork 45
/
Copy pathbuild.gradle
72 lines (61 loc) · 2.13 KB
/
build.gradle
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
plugins {
id 'groovy'
}
def generatedTestSourceDir = 'build/gen/test/groovy'
subprojects {
apply plugin: 'groovy'
task wrapper(type: Wrapper) {
gradleVersion = '7.6'
onlyIf {
projectDir.list().contains('build.gradle')
}
}
task copyTestsFilteringIgnores(type: Copy) {
from 'src/test/groovy'
into generatedTestSourceDir
filter { line ->
line.contains('@Ignore') ? null : line
}
}
sourceSets {
// Set the directory containing the reference solution as the default source set. Default
// compile tasks will now run against this source set.
main {
groovy {
srcDirs = ['.meta/src/reference/groovy']
}
}
// Set the directory containing the @Ignore-stripped tests as the default test source set.
// Default test tasks will now run against this source set.
test {
groovy {
srcDirs = [generatedTestSourceDir]
}
}
// Define a custom source set named "starter" that points to the starter implementations
// delivered to users. We can then use the generated "compileStarterGroovy" task to verify
// that the starter source compiles as-is.
starter {
groovy {
srcDirs = ['src/main/groovy']
}
compileClasspath += sourceSets.main.compileClasspath
}
}
afterEvaluate { project ->
// Log the source paths associated with each source set to verify they are what we expect.
logCompileTaskSourcePath(project, 'compileGroovy') // Corresponds to the "main" source set.
logCompileTaskSourcePath(project, 'compileTestGroovy')
logCompileTaskSourcePath(project, 'compileStarterGroovy')
}
compileTestGroovy.dependsOn(copyTestsFilteringIgnores)
build.finalizedBy(compileStarterGroovy)
}
def logCompileTaskSourcePath(Project project, String taskName) {
project[taskName].doFirst { compileTask ->
logger.info " (source = ${compileTask.source.asPath})"
}
}
wrapper {
gradleVersion = '7.6'
}