forked from junit-team/junit5
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle.kts
92 lines (81 loc) · 2.45 KB
/
build.gradle.kts
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
plugins {
id("io.spring.nohttp")
id("io.github.gradle-nexus.publish-plugin")
`base-conventions`
`build-metadata`
`dependency-update-check`
`jacoco-conventions`
`temp-maven-repo`
}
description = "JUnit 5"
val license by extra(License(
name = "Eclipse Public License v2.0",
url = uri("https://www.eclipse.org/legal/epl-v20.html"),
headerFile = file("src/spotless/eclipse-public-license-2.0.java")
))
val platformProjects by extra(listOf(
projects.junitPlatformCommons,
projects.junitPlatformConsole,
projects.junitPlatformConsoleStandalone,
projects.junitPlatformEngine,
projects.junitPlatformJfr,
projects.junitPlatformLauncher,
projects.junitPlatformReporting,
projects.junitPlatformRunner,
projects.junitPlatformSuite,
projects.junitPlatformSuiteApi,
projects.junitPlatformSuiteCommons,
projects.junitPlatformSuiteEngine,
projects.junitPlatformTestkit
).map { it.dependencyProject })
val jupiterProjects by extra(listOf(
projects.junitJupiter,
projects.junitJupiterApi,
projects.junitJupiterEngine,
projects.junitJupiterMigrationsupport,
projects.junitJupiterParams
).map { it.dependencyProject })
val vintageProjects by extra(listOf(
projects.junitVintageEngine.dependencyProject
))
val mavenizedProjects by extra(platformProjects + jupiterProjects + vintageProjects)
val modularProjects by extra(mavenizedProjects - listOf(projects.junitPlatformConsoleStandalone.dependencyProject))
nexusPublishing {
packageGroup.set("org.junit")
repositories {
sonatype()
}
}
nohttp {
source.exclude("buildSrc/build/generated-sources/**")
}
val jacocoTestProjects = listOf(
projects.junitJupiterEngine,
projects.junitJupiterMigrationsupport,
projects.junitJupiterParams,
projects.junitVintageEngine,
projects.platformTests
).map { it.dependencyProject }
val jacocoClassesDir by extra(file("$buildDir/jacoco/classes"))
val jacocoRootReport by tasks.registering(JacocoReport::class) {
modularProjects.forEach {
dependsOn(it.tasks.named("extractJar"))
it.pluginManager.withPlugin("java") {
sourceDirectories.from(it.the<SourceSetContainer>()["main"].allSource.srcDirs)
}
}
classDirectories.from(files(jacocoClassesDir))
reports {
html.required.set(true)
xml.required.set(true)
csv.required.set(false)
}
}
afterEvaluate {
jacocoRootReport {
jacocoTestProjects.forEach {
executionData(it.tasks.withType<Test>().map { task -> task.the<JacocoTaskExtension>().destinationFile })
dependsOn(it.tasks.withType<Test>())
}
}
}