plugins { id 'java' id 'war' id 'eclipse' id 'idea' } version = '0.10.0' jar.enabled = true def appName = 'bigbluebutton' archivesBaseName = appName task resolveDeps(type: Copy) { into('lib') from configurations.default from configurations.default.allArtifacts.file doLast { println '[bbb:task] Resolved dependencies for bigbluebutton application' } } repositories { jcenter() mavenLocal() } configurations { runtime.exclude group: "org.slf4j", module: "slf4j-api" runtime.exclude group: "org.red5", module: "red5-server" runtime.exclude group: "org.red5", module: "red5-server-common" runtime.exclude group: "org.red5", module: "red5-io" } dependencies { // Servlet providedCompile 'javax.servlet:servlet-api:2.5' // Mina providedCompile 'org.apache.mina:mina-core:2.0.19' providedCompile 'org.apache.mina:mina-integration-beans:2.0.19' providedCompile 'org.apache.mina:mina-integration-jmx:2.0.19' // Spring providedCompile 'org.springframework:spring-web:4.3.12.RELEASE' providedCompile 'org.springframework:spring-beans:4.3.12.RELEASE' providedCompile 'org.springframework:spring-context:4.3.12.RELEASE' providedCompile 'org.springframework:spring-core:4.3.12.RELEASE' // Red5 providedCompile 'org.red5:red5-server:1.0.10-M9' providedCompile 'org.red5:red5-server-common:1.0.10-M9' providedCompile 'org.red5:red5-io:1.0.10-M9' // Logging providedCompile 'ch.qos.logback:logback-core:1.2.3' providedCompile 'ch.qos.logback:logback-classic:1.2.3' providedCompile 'org.slf4j:log4j-over-slf4j:1.7.25' providedCompile 'org.slf4j:jcl-over-slf4j:1.7.25' providedCompile 'org.slf4j:jul-to-slf4j:1.7.25' providedCompile 'org.slf4j:slf4j-api:1.7.25' // Needed for the JVM shutdown hook but needs to be put into red5/lib dir. // Otherwise we get exception on aop utils class not found. providedCompile 'org.springframework:spring-aop:4.3.12.RELEASE' compile 'aopalliance:aopalliance:1.0' // Testing compile 'org.easymock:easymock:3.6' compile 'org.apache.commons:commons-pool2:2.6.0' compile 'com.google.code.gson:gson:2.8.5' providedCompile 'org.apache.commons:commons-lang3:3.7' compile 'org.bigbluebutton:bbb-common-message_2.12:0.0.20-SNAPSHOT' compile 'org.bigbluebutton:bbb-apps-common_2.12:0.0.4-SNAPSHOT' } test { useTestNG() } war.doLast { ant.unzip(src: war.archivePath, dest: "$buildDir/$appName") println '[bbb:task] WAR file ready for bigbluebutton application' } task deploy() { doLast { def red5AppsDir = '/usr/share/red5/webapps' def bbbDir = new File("${red5AppsDir}/$appName") println "Deleting $red5AppsDir" ant.delete(dir: bbbDir) ant.mkdir(dir: bbbDir) ant.copy(todir: bbbDir) { fileset(dir: "$buildDir/$appName") } println '[bbb:task] WAR file deployed for bigbluebutton application' } }