Skip to content
Snippets Groups Projects
build.gradle 2.2 KiB
Newer Older
  • Learn to ignore specific revisions
  • plugins {
    
      id "application"
    
      id "com.diffplug.spotless" version "${spotlessVersion}"
    
    Clayton, Brandon Scott's avatar
    Clayton, Brandon Scott committed
      id "com.github.johnrengelman.shadow" version "${shadowVersion}"
    
    Clayton, Brandon Scott's avatar
    Clayton, Brandon Scott committed
      id "com.github.node-gradle.node" version "${nodeVersion}"
    
    Clayton, Brandon Scott's avatar
    Clayton, Brandon Scott committed
      id "com.github.spotbugs" version "${spotbugsVersion}"
      id "com.star-zero.gradle.githook" version "${githooksVersion}"
    
      id "eclipse-wtp"
      id "jacoco"
    
    Clayton, Brandon Scott's avatar
    Clayton, Brandon Scott committed
      id "java"
    
      id "maven-publish"
    
    }
    
    sourceCompatibility = JavaVersion.VERSION_11
    compileJava.options.encoding = "UTF-8"
    
    
    mainClassName = "gov.usgs.earthquake.nshmp.netcdf.www.Application"
    
    configurations {
      nshmp
    
      libsDir = "libs"
      nshmpLib = "${libsDir}/nshmp-lib-artifacts"
    
    Clayton, Brandon Scott's avatar
    Clayton, Brandon Scott committed
      nshmpLibGradleDir = "${nshmpLib}/gradle"
      spotbugsDir = "${nshmpLib}/gradle"
      spotlessDir = "${nshmpLib}/src/main/resources"
      swaggerDir = "swagger-files"
    }
    
    apply from: "${projectDir}/gradle/repositories.gradle"
    apply from: "${projectDir}/gradle/dependencies.gradle"
    
    Clayton, Brandon Scott's avatar
    Clayton, Brandon Scott committed
    apply from: "${projectDir}/gradle/node.gradle"
    
    
    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')
    }
    
    
    /* SpotBugs */
    
    Clayton, Brandon Scott's avatar
    Clayton, Brandon Scott committed
    tasks.withType(com.github.spotbugs.snom.SpotBugsTask) {
    
      reports {
    
    Clayton, Brandon Scott's avatar
    Clayton, Brandon Scott committed
        html {
          enabled true
          stylesheet = 'fancy-hist.xsl'
        }
    
    /* Run UpdateSwagger */
    
    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"
    }
    
    assemble.dependsOn swagger
    
    
    task swaggerClean(type: Delete) {
      delete swaggerDir
    }
    clean.dependsOn swaggerClean
    
    
    task libsClean(type: Delete) {
      delete libsDir
    }
    clean.dependsOn += libsClean
    
    gradle.afterProject {
      copy {
        from {
          configurations.nshmp.collect { zipTree(it) }
        }
        into nshmpLib
      }
      apply from: "${nshmpLibGradleDir}/git-hooks.gradle"
    
      apply from: "${nshmpLibGradleDir}/spotbugs.gradle"
    
      apply from: "${nshmpLibGradleDir}/spotless.gradle"
    }