apply plugin: 'java' apply plugin: 'idea' defaultTasks 'deploy' version = '0.6' def packageName = 'net.thauvin.erik.mobibot' def mainClassName = packageName + '.Mobibot' def deployDir = 'deploy' def isRelease = 'release' in gradle.startParameter.taskNames repositories { mavenCentral() } dependencies { compile 'log4j:log4j:1.2.17@jar' compile 'pircbot:pircbot:1.5.0' compile 'commons-codec:commons-codec:1.9' compile 'commons-logging:commons-logging:1.1.3' compile 'commons-net:commons-net:1.4.1' compile 'commons-cli:commons-cli:1.2' compile 'commons-httpclient:commons-httpclient:3.1' compile 'oro:oro:2.0.8' compile 'org.jdom:jdom:1.1.3' compile 'org.jsoup:jsoup:1.7.3' compile 'rome:rome:1.0@jar' compile 'rome:rome-fetcher:1.0@jar' compile 'org.json:json:20140107' compile 'org.ostermiller:utils:1.07.00' compile 'net.sourceforge.jweather:jweather:0.3.0@jar' compile 'de.congrace:exp4j:0.3.11' compile 'org.twitter4j:twitter4j-core:4.0.1' compile 'net.sf.delicious-java:delicious:1.14' //compile fileTree(dir: 'lib', include: '*.jar') //compile files('../path/to/example.jar') } compileJava { doFirst { if (isRelease) { ant.taskdef(name: 'jreleaseinfo', classname: 'ch.oscg.jreleaseinfo.anttask.JReleaseInfoAntTask', classpath: 'ant/jreleaseinfo-1.3.0.jar') ant.jreleaseinfo(targetDir: file('src/main/java'), className: 'ReleaseInfo', packageName: packageName, project: rootProject.name, version: version, buildnumfile: file('buildnum.properties')) } } options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" } jar { manifest.attributes('Main-Class': mainClassName, 'Class-Path': '. ./lib/' + configurations.compile.collect { it.getName() }.join(' ./lib/')) version = null } clean { delete deployDir } task wrapper(type: Wrapper) { gradleVersion = gradle.gradleVersion } task copyToDeploy(type: Copy) { from('properties') { include '*.properties' } from jar into deployDir } task copyToDeployLib(type: Copy) { configurations.runtime into deployDir + '/lib' } task deploy(dependsOn: ['build', 'copyToDeploy', 'copyToDeployLib']) { description = "Copies all needed files to the ${deployDir} directory." group = "Publishing" outputs.dir deployDir inputs.files copyToDeploy inputs.files copyToDeployLib mustRunAfter clean file(deployDir + '/logs').mkdir() } task release(dependsOn: ['deploy', 'wrapper']) { group = "Publishing" description = "Releases new version." }