apply plugin: 'com.github.johnrengelman.shadow' String mainClassName = "pro.gravit.launcher.server.ServerWrapper" String mainAgentName = "pro.gravit.launcher.server.ServerAgent" configurations { pack api.extendsFrom pack } repositories { maven { url "https://repo.spring.io/plugins-release/" } } sourceSets { java11 { java { srcDirs = ['src/main/java11'] } dependencies { java11Implementation project(':LauncherAPI') java11Implementation files(sourceSets.main.output.classesDirs) { builtBy compileJava } } } } sourceCompatibility = '1.8' targetCompatibility = '1.8' compileJava11Java { sourceCompatibility = 11 targetCompatibility = 11 } jar { into('META-INF/versions/11') { from sourceSets.java11.output } archiveClassifier.set('clean') manifest.attributes("Main-Class": mainClassName, "Premain-Class": mainAgentName, "Can-Redefine-Classes": "true", "Can-Retransform-Classes": "true", "Can-Set-Native-Method-Prefix": "true", "Multi-Release": "true") } task sourcesJar(type: Jar) { from sourceSets.main.allJava archiveClassifier.set('sources') } task javadocJar(type: Jar) { from javadoc archiveClassifier.set('javadoc') } dependencies { pack project(':LauncherAPI') pack group: 'io.netty', name: 'netty-codec-http', version: rootProject['verNetty'] } shadowJar { duplicatesStrategy = 'EXCLUDE' classifier = null relocate 'io.netty', 'pro.gravit.repackage.io.netty' configurations = [project.configurations.pack] exclude 'module-info.class' } publishing { publications { serverwrapperapi(MavenPublication) { artifactId = 'serverwrapper-api' artifact(jar) { classifier "" } artifact sourcesJar artifact javadocJar pom { name = 'GravitLauncher ServerWrapper API' description = 'GravitLauncher ServerWrapper Module API' url = 'https://gravitlauncher.com' licenses { license { name = 'GNU General Public License, Version 3.0' url = 'https://www.gnu.org/licenses/gpl-3.0.html' } } developers { developer { id = 'gravita' name = 'Gravita' email = 'gravita@gravit.pro' } developer { id = 'zaxar163' name = 'Zaxar163' email = 'zahar.vcherachny@yandex.ru' } } scm { connection = 'scm:git:https://github.com/GravitLauncher/Launcher.git' developerConnection = 'scm:git:ssh://git@github.com:GravitLauncher/Launcher.git' url = 'https://gravitlauncher.com/' } } } } } signing { sign publishing.publications.serverwrapperapi } assemble.dependsOn tasks.shadowJar