Dave Jarvis' Repositories

git clone https://repo.autonoma.ca/repo/keenquotes.git
plugins {
  id 'application'
  id 'com.palantir.git-version' version '0.12.3'
}

group 'com.whitemagicsoftware'

repositories {
  mavenCentral()
}

dependencies {
  // Command-line parsing
  implementation 'info.picocli:picocli:4.4.0'

  testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.1'
  testImplementation 'org.junit.jupiter:junit-jupiter-params:5.7.1'
  testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
}

sourceSets {
  main {
    java {
      srcDirs = ["src/main/java"]
    }
  }
}

compileJava {
  options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
  options.compilerArgs.addAll(['--release', '11'])
}

application {
  applicationName = 'keenquotes'
  mainClassName = "com.whitemagicsoftware.${applicationName}.KeenQuotes"
}

version = gitVersion()

def resourceDir = sourceSets.main.resources.srcDirs[0]
final File propertiesFile = file("${resourceDir}/com/whitemagicsoftware/${applicationName}/app.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.named('test') {
  useJUnitPlatform()
}