AMLSim
/
jars
/junit5-r5.10.2
/junit-platform-console-standalone
/junit-platform-console-standalone.gradle.kts
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") | |
} | |
} | |