plugins{ id "org.jetbrains.kotlin.jvm" version '1.1.2-2' id "application" id 'com.github.johnrengelman.shadow' version '2.0.0' } if (!hasProperty('mainClass')) { ext.mainClass = 'inr.numass.control.ServerApp'//"inr.numass.viewer.test.TestApp" } mainClassName = mainClass version = "0.2.0" description = "The control room application for numass slow control" compileKotlin.kotlinOptions.jvmTarget = "1.8" configurations{ devices.extendsFrom(compile) } dependencies { //graphics compile 'org.controlsfx:controlsfx:8.40.12' compile "no.tornado:tornadofx:1.7.4" compile "org.jetbrains.kotlin:kotlin-stdlib-jre8" //DataForge dependencies compile project(':numass-control') compile project(':numass-server') // optional device classpath devices project(':numass-control:cryotemp') devices project(':numass-control:msp') devices project(':numass-control:vac') } shadowJar{ mergeServiceFiles() } task debugWithDevice(dependsOn: classes, type: JavaExec) { main mainClass args "--config.resource=/config/server.xml" classpath = sourceSets.main.runtimeClasspath + configurations.devices description "Start application in debug mode" group "debug" } task startScriptWithDevices(type: CreateStartScripts){ applicationName = "control-room-devices" mainClassName = mainClass outputDir = new File(project.buildDir, 'scripts') classpath = jar.outputs.files + project.configurations.devices } distributions{ devices{ contents { into("lib") { from jar from configurations.devices } into("bin"){ from startScriptWithDevices } } } }