plugins { id 'application' } repositories { jcenter() // since the Jasper dickheads keep creating custom builds of other projects // we need to add a repository for their "special" versions maven { url 'http://jaspersoft.artifactoryonline.com/jaspersoft/jaspersoft-repo/' } } dependencies { implementation group: 'com.h2database', name: 'h2', version: '1.4.200' implementation group: 'net.sourceforge.dynamicreports', name: 'dynamicreports-core', version: '5.0.0' implementation group: 'org.simplejavamail', name: 'simple-java-mail', version: '4.2.3' implementation group: 'com.formdev', name: 'flatlaf', version: '0.38' implementation group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1' } task download(type: Copy) { from sourceSets.main.runtimeClasspath into 'libs/' } project.configurations.implementation.setCanBeResolved(true) jar { manifest { attributes ( 'Main-Class': 'Main', 'Class-Path': configurations.implementation.collect { 'lib/' + it.name }.join(' ') ) } } task createMissingSourceDirs { group = "Source Directories" description = "Create all of the missing source directories for this project." doFirst { sourceSets.each { def sourceRoot -> sourceRoot.allSource.srcDirTrees.each { def sourceDir -> if(!sourceDir.dir.exists()) { println "Creating ${sourceDir}" mkdir sourceDir.dir } } } } } task deleteEmptySourceDirs { group = "Source Directories" description = "Delete all empty source directories." doFirst { sourceSets.each { def sourceRoot -> sourceRoot.allSource.srcDirTrees.each { def sourceDir -> if(sourceDir.dir.exists() && sourceDir.dir.isDirectory() && sourceDir.dir.list().length == 0) { println "Removing empty ${sourceDir}" sourceDir.dir.delete() } } } } } compileJava { sourceCompatibility = '1.8' targetCompatibility = '1.8' } mainClassName = 'Main'