/* * This file is a part of the SteamWar software. * * Copyright (C) 2020 SteamWar.de-Serverteam * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ import org.apache.tools.ant.taskdefs.condition.Os plugins { id 'java' } group 'de.steamwar' version '' ext { buildName = 'CommonCore' artifactName = 'commoncore' uberJarName = "${buildName}-all.jar" jarName = "${artifactName}.jar" libs = "${buildDir}/libs" if (Os.isFamily(Os.FAMILY_WINDOWS)) { operatingSystem = "windows" } else { operatingSystem = "unix" } } compileJava.options.encoding = 'UTF-8' sourceCompatibility = 17 targetCompatibility = 17 sourceSets { main { java { srcDirs = ['src/'] } resources { srcDirs = ['src/'] exclude '**/*.java', '**/*.kt' } } test { java { srcDirs = ['testsrc'] } resources { srcDirs = ['testsrc'] exclude '**/*.java', '**/*.kt' } } } repositories { mavenCentral() } dependencies { compileOnly 'org.projectlombok:lombok:1.18.22' testCompileOnly 'org.projectlombok:lombok:1.18.22' annotationProcessor 'org.projectlombok:lombok:1.18.22' testAnnotationProcessor 'org.projectlombok:lombok:1.18.22' testImplementation 'junit:junit:4.13.2' testImplementation 'org.hamcrest:hamcrest:2.2' compileOnly 'org.xerial:sqlite-jdbc:3.36.0' } task buildResources { doLast { File to = new File("${buildDir}/classes/java/main/META-INF/services/javax.annotation.processing.Processor") to.parentFile.mkdirs() if (!to.exists()) { to.createNewFile() to.append("de.steamwar.linkage.LinkageProcessor\n") } } } classes.finalizedBy(buildResources) task buildProject { description 'Build this project' group "Steamwar" dependsOn build } task testOutput { description 'Print Test output' group "Build" doLast { for (def file : new File("${buildDir}/test-results/test/").listFiles()) { if (file.isDirectory()) { continue } def strings = file.readLines() if (strings.get(1).contains("failures=\"0\"")) { continue } println "Content ${file}:" strings.each { line -> println ": $line" } println "" } } } test.finalizedBy(testOutput)