plugins { id 'maven-publish' id 'net.woggioni.gradle.multi-release-jar' 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 platform(group: 'com.lys', name: 'lys-dependencies', version: getProperty('lys.version')) testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api' testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-params' testRuntimeOnly group: 'org.junit.jupiter', name: 'junit-jupiter-engine' } lombok { version = getProperty('lombok.version') } } ext { setProperty('jpms.module.name', 'net.woggioni.jwo') } 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 { withJavadocJar() withSourcesJar() } compileJava { options.release = 8 options.compilerArgs << '-parameters' } TaskProvider pathClassLoaderTestBundleTask = tasks.register("pathClassLoaderTestBundle", Zip) { from(configurations.pathClassloaderTest) archiveBaseName = "pathClassLoaderTestBundle" } test { inputs.files(pathClassLoaderTestBundleTask) useJUnitPlatform() 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"]) } } }