apply plugin: 'scala' def findPlayHome(){ project.ext.playHome = System.getenv()['ACTIVATOR_HOME'] if (null == project.ext.playHome) { throw new GradleException('ACTIVATOR_HOME env variable not set!') } project.ext.playExec = "${playHome}/bin/activator" } findPlayHome() configurations { // configuration that holds jars to copy into lib provided all*.exclude group: 'org.slf4j', module: 'slf4j-log4j12' all*.exclude group: 'log4j' all*.resolutionStrategy { dependencySubstitution { substitute module('org.slf4j:slf4j-log4j12') with module('ch.qos.logback:logback-classic:1.1.7') //prefer 'log4j-over-slf4j' over 'log4j' force 'com.typesafe:config:1.3.1', 'io.netty:netty:3.10.6.Final' } } } dependencies{ // User defined libraries (will be copied to lib/ before `play compile`) // compile 'group:name:0.1' compile project(":wherehows-common") compile project(":metadata-etl") compile externalDependency.play compile externalDependency.play_java_jdbc compile externalDependency.typesafe_config compile externalDependency.netty compile externalDependency.mockito compile externalDependency.slf4j_api compile externalDependency.jasypt compile externalDependency.kafka compile externalDependency.kafka_clients provided project(":wherehows-common") provided project(":metadata-etl") } clean { delete "lib/" } task copyPlayLibs(type: Copy){ from configurations.provided into 'lib' } task "playCompile" (type: Exec, dependsOn: copyPlayLibs) { commandLine playExec, 'compile' } task "playTest" (type: Exec, dependsOn: playCompile) { commandLine playExec, 'test' } task "playClean" (type: Exec) { commandLine playExec, 'clean' } sourceSets.main{ java.srcDir 'app' compileClasspath += configurations.provided } // optional: if using 'idea' plugin idea { module{ scopes.PROVIDED.plus += [configurations.provided] } } task "build" (type: Exec, dependsOn: [playClean, playCompile], overwrite: true) { commandLine playExec, 'stage' } task "dist" (type: Exec, overwrite: true) { commandLine playExec, 'dist' } task "check" (overwrite: true) { }