plugins { alias catalog.plugins.kotlin.jvm alias catalog.plugins.envelope id 'maven-publish' } import net.woggioni.gradle.envelope.EnvelopeJarTask import org.jetbrains.kotlin.gradle.tasks.KotlinCompile group = 'net.woggioni' version = getProperty('gbcs.version') repositories { maven { url = 'https://woggioni.net/mvn' content { includeModule 'net.woggioni', 'jwo' includeGroup 'com.lys' } } mavenCentral() } dependencies { implementation catalog.jwo implementation catalog.slf4j.api implementation catalog.netty.codec.http runtimeOnly catalog.slf4j.jdk14 testImplementation catalog.junit.jupiter.api testImplementation catalog.junit.jupiter.params testRuntimeOnly catalog.junit.jupiter.engine } java { withSourcesJar() } tasks.named(JavaPlugin.COMPILE_JAVA_TASK_NAME, JavaCompile) { modularity.inferModulePath = true options.compilerArgs << '--patch-module' << 'net.woggioni.gbcs=' + project.sourceSets.main.output.asPath options.release = 17 } tasks.named("compileKotlin", KotlinCompile.class) { kotlinOptions { jvmTarget = 17 } } Provider envelopeJarTaskProvider = tasks.named('envelopeJar', EnvelopeJarTask.class) { mainModule = 'net.woggioni.gbcs' mainClass = 'net.woggioni.gbcs.GradleBuildCacheServer' systemProperty 'java.util.logging.config.class', 'net.woggioni.gbcs.LoggingConfig' systemProperty 'log.config.source', 'logging.properties' manifest { attributes([ 'Add-Exports' : 'java.base/sun.security.x509' ]) } } envelopeRun { mainModule = 'net.woggioni.envelope' modularity.inferModulePath = true jvmArgs('--add-exports=java.base/sun.security.x509=io.netty.handler') } def envelopeJarArtifact = artifacts.add('archives', envelopeJarTaskProvider.get().archiveFile.get().asFile) { type = 'jar' builtBy envelopeJarTaskProvider } publishing { repositories { maven { url = 'https://mvn.woggioni.net/' } } publications { maven(MavenPublication) { artifact envelopeJarArtifact } } }