plugins {
id 'application'
id 'com.palantir.git-version' version '3.0.0'
id "me.champeau.jmh" version "0.7.2"
}
group 'com.whitemagicsoftware'
repositories {
mavenCentral()
}
dependencies {
def v_junit = '5.10.3'
def v_picocli = '4.7.6'
implementation "info.picocli:picocli:${v_picocli}"
testImplementation "org.junit.jupiter:junit-jupiter-api:${v_junit}"
testImplementation "org.junit.jupiter:junit-jupiter-params:${v_junit}"
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:${v_junit}"
}
sourceSets {
main {
java {
srcDirs = ["src/main/java"]
}
}
}
compileJava {
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
options.compilerArgs.addAll( ['--release', '22'] )
}
application {
applicationName = 'keenquotes'
mainClassName = "com.whitemagicsoftware.${applicationName}.app.KeenQuotes"
}
version = gitVersion()
def resourceDir = sourceSets.main.resources.srcDirs[0]
final File propertiesFile = file( "${resourceDir}/com/whitemagicsoftware/${applicationName}/app/version.properties" )
propertiesFile.write( "application.version=${version}" )
jar {
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
manifest {
attributes 'Main-Class': mainClassName
}
from {
(configurations.runtimeClasspath.findAll { !it.path.endsWith( ".pom" ) }).collect {
it.isDirectory() ? it : zipTree( it )
}
}
archiveFileName = "${applicationName}.jar"
exclude 'META-INF/*.RSA', 'META-INF/*.SF', 'META-INF/*.DSA'
}
tasks.register( 'lib', Jar ) {
archiveFileName = "${applicationName}.jar"
destinationDirectory = layout.buildDirectory.dir( "lib" )
from layout.buildDirectory.dir( "classes/java/main" )
exclude "**/KeenQuotes.class"
}
lib.configure {
dependsOn compileJava
}
tasks.named( 'test' ) {
useJUnitPlatform()
}