/* * Copyright 2016-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. */ apply plugin: "com.github.johnrengelman.shadow" // apply plugin to use autocomplete for Kover DSL apply plugin: 'org.jetbrains.kotlinx.kover' configurations { shadowDeps // shaded dependencies, not included into the resulting .pom file compileOnly.extendsFrom(shadowDeps) runtimeOnly.extendsFrom(shadowDeps) } dependencies { compileOnly "junit:junit:$junit_version" compileOnly "org.junit.jupiter:junit-jupiter-api:$junit5_version" testImplementation "org.junit.jupiter:junit-jupiter-engine:$junit5_version" testImplementation "org.junit.platform:junit-platform-testkit:1.7.0" shadowDeps "net.bytebuddy:byte-buddy:$byte_buddy_version" shadowDeps "net.bytebuddy:byte-buddy-agent:$byte_buddy_version" compileOnly "io.projectreactor.tools:blockhound:$blockhound_version" testImplementation "io.projectreactor.tools:blockhound:$blockhound_version" testImplementation "com.google.code.gson:gson:2.8.6" api "net.java.dev.jna:jna:$jna_version" api "net.java.dev.jna:jna-platform:$jna_version" } java { /* This is needed to be able to run JUnit5 tests. Otherwise, Gradle complains that it can't find the JVM1.6-compatible version of the `junit-jupiter-api` artifact. */ disableAutoTargetJvm() } // This is required for BlockHound tests to work, see https://github.com/Kotlin/kotlinx.coroutines/issues/3701 tasks.withType(Test).configureEach { if (JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_13)) { jvmArgs += ["-XX:+AllowRedefinitionToAddDeleteMethods"] } } jar { setEnabled(false) } def shadowJarTask = shadowJar { classifier null // Shadow only byte buddy, do not package kotlin stdlib configurations = [project.configurations.shadowDeps] relocate('net.bytebuddy', 'kotlinx.coroutines.repackaged.net.bytebuddy') manifest { attributes "Premain-Class": "kotlinx.coroutines.debug.AgentPremain" attributes "Can-Redefine-Classes": "true" } } configurations { artifacts { add("apiElements", shadowJarTask) add("runtimeElements", shadowJarTask) } } koverReport { filters { excludes { // Never used, safety mechanism classes("kotlinx.coroutines.debug.internal.NoOpProbesKt") } } }