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/" } } sourceCompatibility = '1.8' targetCompatibility = '1.8' jar { classifier = 'clean' manifest.attributes("Main-Class": mainClassName, "Premain-Class": mainAgentName, "Can-Redefine-Classes": "true", "Can-Retransform-Classes": "true", "Can-Set-Native-Method-Prefix": "true") } task sourcesJar(type: Jar) { from sourceSets.main.allJava archiveClassifier = 'sources' } task javadocJar(type: Jar) { from javadoc archiveClassifier = 'javadoc' } dependencies { pack project(':LauncherAuthlib') 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://launcher.gravit.pro' licenses { license { name = 'GNU General Public License, Version 3.0' url = 'https://www.gnu.org/licenses/gpl-3.0.html' } } scm { connection = 'scm:git:https://github.com/GravitLauncher/Launcher.git' developerConnection = 'scm:git:ssh://git@github.com:GravitLauncher/Launcher.git' url = 'https://launcher.gravit.pro/' } } } } } signing { sign publishing.publications.serverwrapperapi } assemble.dependsOn tasks.shadowJar