File size: 3,063 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 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
import junitbuild.java.WriteArtifactsFile
plugins {
id("junitbuild.java-library-conventions")
id("junitbuild.shadow-conventions")
}
description = "JUnit Platform Console Standalone"
dependencies {
shadowed(projects.junitPlatformReporting)
shadowed(projects.junitPlatformConsole)
shadowed(projects.junitPlatformSuite)
shadowed(projects.junitJupiterEngine)
shadowed(projects.junitJupiterParams)
shadowed(projects.junitVintageEngine)
shadowed(libs.apiguardian) {
because("downstream projects need it to avoid compiler warnings")
}
}
val jupiterVersion = rootProject.version
val vintageVersion: String by project
tasks {
jar {
manifest {
attributes("Main-Class" to "org.junit.platform.console.ConsoleLauncher")
}
}
val shadowedArtifactsFile by registering(WriteArtifactsFile::class) {
from(configurations.shadowed)
outputFile = layout.buildDirectory.file("shadowed-artifacts")
}
shadowJar {
// https://github.com/junit-team/junit5/issues/2557
// exclude compiled module declarations from any source (e.g. /*, /META-INF/versions/N/*)
exclude("**/module-info.class")
// https://github.com/junit-team/junit5/issues/761
// prevent duplicates, add 3rd-party licenses explicitly
exclude("META-INF/LICENSE*.md")
from(project.projects.junitPlatformConsole.dependencyProject.projectDir) {
include("LICENSE-picocli.md")
into("META-INF")
}
from(project.projects.junitJupiterParams.dependencyProject.projectDir) {
include("LICENSE-univocity-parsers.md")
into("META-INF")
}
from(shadowedArtifactsFile) {
into("META-INF")
}
bundle {
val importAPIGuardian: String by extra
bnd("""
# Customize the imports because this is an aggregate jar
Import-Package: \
$importAPIGuardian,\
kotlin.*;resolution:="optional",\
*
# Disable the APIGuardian plugin since everything was already
# processed, again because this is an aggregate jar
-export-apiguardian:
""")
}
mergeServiceFiles()
manifest.apply {
inheritFrom(jar.get().manifest)
attributes(mapOf(
"Specification-Title" to project.name,
"Implementation-Title" to project.name,
// Generate test engine version information in single shared manifest file.
// Pattern of key and value: `"Engine-Version-{YourTestEngine#getId()}": "47.11"`
"Engine-Version-junit-jupiter" to jupiterVersion,
"Engine-Version-junit-vintage" to vintageVersion,
// Version-aware binaries are already included - set Multi-Release flag here.
// See https://openjdk.java.net/jeps/238 for details
// Note: the "jar --update ... --release X" command does not work with the
// shadowed JAR as it contains nested classes that do not comply with multi-release jars.
"Multi-Release" to true
))
}
}
// 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")
}
}
|