plugins { id 'java' id 'com.eriwen.gradle.js' version '2.14.1' id 'com.eriwen.gradle.css' version '2.14.0' } sourceCompatibility = 1.8 targetCompatibility = 1.8 repositories { mavenCentral() } version = '1.3.0' sourceSets { main { java { srcDir 'src/main/java' } } test { java { srcDir 'src/test/java' } } } dependencies { // Logging runtime 'org.apache.logging.log4j:log4j-api:2.11.1' runtime 'org.apache.logging.log4j:log4j-core:2.11.1' compile 'org.apache.logging.log4j:log4j-slf4j-impl:2.11.1' // HTTP Framework compile 'com.sparkjava:spark-core:2.7.2' compile 'com.sparkjava:spark-template-freemarker:2.7.1' compile 'org.apache.httpcomponents:httpclient:4.5.7' // JSON Mapping/Marshalling compile 'com.fasterxml.jackson.core:jackson-databind:2.9.6' compile 'com.fasterxml.jackson.core:jackson-core:2.9.6' compile 'com.fasterxml.jackson.core:jackson-annotations:2.9.6' // Database compile 'com.zaxxer:HikariCP:3.3.1' compile 'org.mariadb.jdbc:mariadb-java-client:2.4.0' compile 'org.flywaydb:flyway-core:6.0.0-beta' // MISC compile 'org.apache.commons:commons-lang3:3.7' // Unit Testing testCompile 'junit:junit:4.11' testCompile 'org.mockito:mockito-core:1.10.19' } jar { manifest { attributes "Main-Class": "io.linuxserver.fleet.core.Main" } from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } exclude 'META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA' } combineJs { encoding = "UTF-8" source = [ 'src/main/resources/assets/js/jquery-3.3.1.min.js', 'src/main/resources/assets/js/bootstrap.bundle.min.js', 'src/main/resources/assets/js/fontawesome-all.min.js', 'src/main/resources/assets/js/jquery.tablesorter.js', 'src/main/resources/assets/js/Chart.bundle.min.js', 'src/main/resources/assets/js/fleet.js' ] dest = file('src/main/resources/assets/js/all.js') } minifyJs { source = combineJs dest = file('src/main/resources/assets/js/all.min.js') closure { warningLevel = 'QUIET' } } combineCss { source = [ 'src/main/resources/assets/css/bootstrap.css', 'src/main/resources/assets/css/Chart.min.css', 'src/main/resources/assets/css/fleet.css', 'src/main/resources/assets/css/fontawesome-all.css' ] dest = file('src/main/resources/assets/css/all.css') } minifyCss { source = combineCss dest = file('src/main/resources/assets/css/all.min.css') } task configureLogConfiguration(type: Copy) { def logFile = project.hasProperty('env') ? "${env}" : 'local' from "config/log4j2.${logFile}.xml" into 'src/main/resources' rename "log4j2.${logFile}.xml", 'log4j2.xml' } build.dependsOn minifyCss, minifyJs, configureLogConfiguration