plugins { id 'maven-publish' id 'net.woggioni.gradle.lombok' apply false } allprojects { apply plugin: 'java-library' apply plugin: 'net.woggioni.gradle.lombok' group = "net.woggioni" version = getProperty('jwo.version') repositories { maven { url = 'https://woggioni.net/mvn/' } mavenCentral() } dependencies { testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: getProperty('junitJupiter.version') testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-params', version: getProperty('junitJupiter.version') testRuntimeOnly group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: getProperty('junitJupiter.version') } lombok { version = getProperty('lombok.version') } } configurations { pathClassloaderTest } dependencies { implementation group: "org.slf4j", name: "slf4j-api", version: getProperty('slf4j.version') pathClassloaderTest group: 'com.google.inject', name: 'guice', version: getProperty('guice.version') } java { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 withJavadocJar() withSourcesJar() } jar { manifest{ attributes([ "Automatic-Module-Name": "net.woggioni.jwo" ]) } } TaskProvider pathClassLoaderTestBundleTask = tasks.register("pathClassLoaderTestBundle", Zip) { from(configurations.pathClassloaderTest) archiveBaseName = "pathClassLoaderTestBundle" } test { inputs.files(pathClassLoaderTestBundleTask) useJUnitPlatform() Dependency junitJupiterEngineDependency = dependencies.create( group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: project.getProperty('junitJupiter.version') ) File junitJupiterEngineJar = configurations.getByName(JavaPlugin.TEST_RUNTIME_CLASSPATH_CONFIGURATION_NAME) .resolvedConfiguration.resolvedArtifacts.grep { ResolvedArtifact resolvedArtifact -> ModuleVersionIdentifier id = resolvedArtifact.moduleVersion.id id.group == 'org.junit.jupiter' && id.name == 'junit-jupiter-engine' }.collect { ResolvedArtifact resolvedArtifact -> resolvedArtifact.file }.first() systemProperties([ 'junit.jupiter.engine.jar' : junitJupiterEngineJar.toString(), 'path.classloader.test.bundle' : pathClassLoaderTestBundleTask.get().outputs.files.singleFile ]) } wrapper { distributionType = Wrapper.DistributionType.BIN gradleVersion = getProperty('gradle.version') } publishing { repositories { maven { url = 'https://mvn.woggioni.net/' } } publications { maven(MavenPublication) { from(components["java"]) } } }