plugins { id 'com.github.johnrengelman.shadow' version '2.0.4' } ext { // Shaded version of ASM to avoid conflict with root project. asm_version = '6.1.1' } dependencies { compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version" compile "org.slf4j:jul-to-slf4j:$slf4j_version" compile "org.apache.logging.log4j:log4j-slf4j-impl:$log4j_version" compile "com.jcabi:jcabi-manifests:$jcabi_manifests_version" // ASM: byte code manipulation library compile "org.ow2.asm:asm:$asm_version" compile "org.ow2.asm:asm-tree:$asm_version" compile "org.ow2.asm:asm-commons:$asm_version" // Classpath scanner compile "io.github.lukehutch:fast-classpath-scanner:$fast_classpath_scanner_version" // Test utilities testCompile "junit:junit:$junit_version" testCompile "org.assertj:assertj-core:$assertj_version" } jar.enabled = false shadowJar { baseName = "djvm" classifier = "" dependencies { exclude(dependency('com.jcabi:.*:.*')) exclude(dependency('org.apache.*:.*:.*')) exclude(dependency('org.jetbrains.*:.*:.*')) exclude(dependency('org.slf4j:.*:.*')) exclude(dependency('io.github.lukehutch:.*:.*')) } relocate 'org.objectweb.asm', 'djvm.org.objectweb.asm' artifacts { shadow(tasks.shadowJar.archivePath) { builtBy shadowJar } } } assemble.dependsOn shadowJar