Skip to content
Snippets Groups Projects
build.gradle 3.58 KiB
Newer Older
plugins {
  id "application"
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  id "com.diffplug.gradle.spotless" version "3.27.1"
  id "com.github.johnrengelman.shadow" version "5.2.0"
  id "com.github.spotbugs" version "3.0.0"
  id "com.star-zero.gradle.githook" version "1.2.0"
  id "eclipse-wtp"
  id "jacoco"
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  id "java"
  id "net.ltgt.apt-eclipse" version "0.21"
}

sourceCompatibility = JavaVersion.VERSION_11
compileJava.options.encoding = "UTF-8"

mainClassName = "gov.usgs.earthquake.nshmp.netcdf.www.Application"

repositories {
  jcenter()

  maven {
    url "https://artifacts.unidata.ucar.edu/repository/unidata-all/"
  }
}

Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
git {
  implementation("git@code.usgs.gov:ghsc/nshmp/nshmp-lib.git", {
    name "nshmp-netcdf-dep--nshmp-lib"
    tag "v0.0.5"
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  })
}

ext {
  nshmpLib = "libs/nshmp-netcdf-dep--nshmp-lib"
  nshmpLibGradleDir = "${nshmpLib}/gradle"
  spotbugsDir = "${nshmpLib}/gradle"
  spotlessDir = "${nshmpLib}/src/main/resources"
  swaggerDir = "swagger-files"
}
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
apply from: "${nshmpLibGradleDir}/git-hooks.gradle"
apply from: "${nshmpLibGradleDir}/spotbugs.gradle"
apply from: "${nshmpLibGradleDir}/spotless.gradle"

dependencies {
  // NetCDF
  implementation "edu.ucar:cdm:${cdmVersion}"
  implementation "edu.ucar:netcdf4:${netcdfVersion}"
  implementation "org.slf4j:slf4j-jdk14:${slfVersion}"

Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  // Micronaut
  annotationProcessor platform("io.micronaut:micronaut-bom:${mnVersion}")
  annotationProcessor "io.micronaut:micronaut-inject-java"
  annotationProcessor "io.micronaut:micronaut-validation"
  implementation platform("io.micronaut:micronaut-bom:${mnVersion}")
  implementation "io.micronaut:micronaut-http-client"
  implementation "io.micronaut:micronaut-inject"
  implementation "io.micronaut:micronaut-validation"
  implementation "io.micronaut:micronaut-runtime"
  implementation "io.micronaut:micronaut-http-server-netty"
  implementation "com.fasterxml.jackson.module:jackson-module-parameter-names:${jacksonVersion}"
  runtimeOnly "ch.qos.logback:logback-classic:${logbackVersion}"

  // Swagger
  annotationProcessor("io.micronaut.configuration:micronaut-openapi:${mnOpenAPIVersion}")
  implementation("io.swagger.core.v3:swagger-annotations:${swaggerVersion}")
  implementation("io.swagger.core.v3:swagger-models:${swaggerVersion}")

  // junit
  testAnnotationProcessor "io.micronaut:micronaut-inject-java:${mnVersion}"
  testImplementation platform("io.micronaut:micronaut-bom:${mnVersion}")
  testImplementation "org.junit.jupiter:junit-jupiter:${junitVersion}"
  testImplementation "org.junit.jupiter:junit-jupiter-api"
  testImplementation "io.micronaut.test:micronaut-test-junit5"
  testImplementation "io.micronaut.test:micronaut-test-spock"
  testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine"
}

test {
  useJUnitPlatform()
}

jacoco {
  toolVersion = "0.8.4"
}

jacocoTestReport {
  reports {
    xml.enabled true
    html.enabled true
  }
}
check.dependsOn jacocoTestReport

shadowJar {
  mergeServiceFiles()
}

tasks.withType(JavaCompile) {
  options.encoding = "UTF-8"
  options.compilerArgs.add("-parameters")
}

tasks.withType(JavaExec) {
  jvmArgs('-noverify', '-XX:TieredStopAtLevel=1', '-Dcom.sun.management.jmxremote')
}

/* Add HTML reports to SpotBugs */
tasks.withType(com.github.spotbugs.SpotBugsTask) {
  ignoreFailures = false // TODO remove when nshmp-lib is updated
  reports {
    xml.enabled = false
    html.enabled = true
  }
}

task swagger(type: JavaExec) {
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  doFirst {
    mkdir swaggerDir
  }
  classpath sourceSets.main.runtimeClasspath
  main = "gov.usgs.earthquake.nshmp.netcdf.swagger.UpdateSwagger"
}

task swaggerClean(type: Delete) {
  delete swaggerDir
}

clean.dependsOn swaggerClean
assemble.dependsOn swagger