plugins { id 'com.github.johnrengelman.shadow' version '4.0.0' id 'com.palantir.git-version' version '0.11.0' id 'java' } repositories { mavenCentral() } dependencies { compile 'org.ow2.asm:asm:6.2.1' compile 'org.nanohttpd:nanohttpd:2.3.1' testCompile 'junit:junit:4.12' } sourceCompatibility = 8 def buildNumber = System.getenv('AI_BUILD_NUMBER') def gitInfo = versionDetails() version = '1.1.' + (buildNumber?:'0-SNAPSHOT') + '-' + gitInfo.gitHashFull[0..6] if (!gitInfo.isCleanTag) version += '.dirty' jar { manifest { attributes ( 'Implementation-Title': project.name, 'Implementation-Version': version, 'Implementation-Vendor': 'yushijinhun', 'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"), 'Automatic-Module-Name': 'moe.yushi.authlibinjector', 'Premain-Class': 'moe.yushi.authlibinjector.javaagent.AuthlibInjectorPremain', 'Agent-Class': 'moe.yushi.authlibinjector.javaagent.AuthlibInjectorPremain', 'Can-Retransform-Classes': true, 'Can-Redefine-Classes': true, 'Git-Commit': gitInfo.gitHashFull, 'Git-IsClean': gitInfo.isCleanTag, 'Build-Number': buildNumber?:'-1' ) } } processResources { from('LICENSE') { rename('LICENSE', 'authlib-injector.txt') into 'META-INF/licenses' } } shadowJar { classifier = null exclude 'META-INF/maven/**' exclude 'module-info.class' // nanohttpd exclude 'LICENSE.txt' exclude 'fi/iki/elonen/util/**' exclude 'META-INF/nanohttpd/mimetypes.properties' relocate 'org.objectweb.asm', 'moe.yushi.authlibinjector.internal.org.objectweb.asm' relocate 'fi.iki.elonen', 'moe.yushi.authlibinjector.internal.fi.iki.elonen' } defaultTasks 'clean', 'shadowJar'