plugins { id 'application' } mainClassName = 'io.connector.Main' buildDir = 'bin' def moduleNames = subprojects.findAll { it.name.startsWith("connector-module-") } dependencies { compile project(":connector-app") } // setting for all projects allprojects { // set that all projects are Java projects apply plugin: 'java' group 'io.connector' version '2.0' repositories { mavenLocal() mavenCentral() } java { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } dependencies { compile group: 'cz.senslog', name: 'common', version: '1.0.0' } // create fat JAR jar { manifest { attributes "Main-Class": "$mainClassName" } from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } } } } // settings for all modules subprojects { buildDir = '../bin' } project("connector-app") { dependencies { compile project(":connector-core") compile group: 'com.beust', name: 'jcommander', version: '1.78' } } project(":connector-core") { dependencies { compile group: 'io.vertx', name: 'vertx-core', version: '3.9.1' compile group: 'io.vertx', name: 'vertx-web', version: '3.9.1' } } project(":connector-model") { dependencies { compile group: 'io.vertx', name: 'vertx-core', version: '3.9.1' } } // settings for all 'connector-module-*' configure(moduleNames) { dependencies { compile project(":connector-core") compile project(":connector-model") compile group: 'io.vertx', name: 'vertx-core', version: '3.9.1' } }