Skip to content
Snippets Groups Projects
build.gradle 3.33 KiB
Newer Older
  • Learn to ignore specific revisions
  • plugins {
    
      id "application"
    
      id "eclipse-wtp"
      id "java"
      id "jacoco"
    
      id "com.github.johnrengelman.shadow" version "5.2.0"
      id "net.ltgt.apt-eclipse" version "0.21"
    
      id "com.star-zero.gradle.githook" version "1.2.0"
      id "com.github.spotbugs" version "3.0.0"
      id "com.diffplug.gradle.spotless" version "3.27.1"
    }
    
    apply from: project(":nshmp-lib").file("gradle/git-hooks.gradle")
    apply from: project(":nshmp-lib").file("gradle/spotbugs.gradle")
    apply from: project(":nshmp-lib").file("gradle/spotless.gradle")
    
    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/"
      }
    }
    
    dependencies {
      implementation project(":nshmp-lib")
    
    
      // 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"
    
    ext {
      swaggerDir = "swagger-files"
    }
    
    
    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) {
      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