File size: 2,285 Bytes
2795186 |
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 |
plugins {
id("junitbuild.java-library-conventions")
id("junitbuild.shadow-conventions")
id("junitbuild.java-multi-release-sources")
id("junitbuild.java-repackage-jars")
}
description = "JUnit Platform Console"
dependencies {
api(platform(projects.junitBom))
api(projects.junitPlatformReporting)
compileOnlyApi(libs.apiguardian)
compileOnly(libs.openTestReporting.events)
shadowed(libs.picocli)
osgiVerification(projects.junitJupiterEngine)
osgiVerification(projects.junitPlatformLauncher)
}
tasks {
compileModule {
options.compilerArgs.addAll(listOf(
"--add-modules", "org.opentest4j.reporting.events",
"--add-reads", "${project.projects.junitPlatformReporting.dependencyProject.javaModuleName}=org.opentest4j.reporting.events",
"--add-modules", "info.picocli",
"--add-reads", "${javaModuleName}=info.picocli"
))
}
shadowJar {
val release17ClassesDir = sourceSets.mainRelease17.get().output.classesDirs.singleFile
inputs.dir(release17ClassesDir).withPathSensitivity(PathSensitivity.RELATIVE)
exclude("META-INF/versions/9/module-info.class")
relocate("picocli", "org.junit.platform.console.shadow.picocli")
from(projectDir) {
include("LICENSE-picocli.md")
into("META-INF")
}
from(sourceSets.mainRelease9.get().output.classesDirs)
doLast(objects.newInstance(junitbuild.java.ExecJarAction::class).apply {
javaLauncher = project.javaToolchains.launcherFor(java.toolchain)
args.addAll(
"--update",
"--file", archiveFile.get().asFile.absolutePath,
"--main-class", "org.junit.platform.console.ConsoleLauncher",
"--release", "17",
"-C", release17ClassesDir.absolutePath, "."
)
})
}
codeCoverageClassesJar {
exclude("org/junit/platform/console/options/ConsoleUtils.class")
}
jar {
manifest {
attributes("Main-Class" to "org.junit.platform.console.ConsoleLauncher")
}
}
// This jar contains some Java 9 code
// (org.junit.platform.console.ConsoleLauncherToolProvider which implements
// java.util.spi.ToolProvider which is @since 9).
// So in order to resolve this, it can only run on Java 9
osgiProperties {
property("-runee", "JavaSE-9")
}
}
eclipse {
classpath {
sourceSets -= project.sourceSets.mainRelease9.get()
sourceSets -= project.sourceSets.mainRelease17.get()
}
}
|