Skip to content
Snippets Groups Projects
build.gradle 4.17 KiB
Newer Older
  • Learn to ignore specific revisions
  •  * In order to build and run services locally,
     * one needs to include the following directorie(s) in the root project (they
    
     * are ignored by git):
     *
    
     *    models/
     *       ak/
     *          2007/
     *       wus/
     *          2008/
     *          2014/
     *          2014b/
     *          2018/
     *       ceus/
     *          2008/
     *          2014/
     *          2018/
    
     *
     * ...with each 'year' directory being an alias to the corresponding
    
     * git repository. One only needs to include the model they will run in the services.
     *
     * Then build the JAR file: ./gradlew assemble
     *
     * One can then specify the model to run in the services:
    
     *    java -jar build/libs/nshmp-haz-v2.jar -model=<MODEL>
    
     *
     * Where <MODEL> is one of the model enums in nshmp.www.Model
    
    Powers, Peter M.'s avatar
    Powers, Peter M. committed
    
    
    plugins {
    
    Clayton, Brandon Scott's avatar
    Clayton, Brandon Scott committed
      id "application"
    
    Clayton, Brandon Scott's avatar
    Clayton, Brandon Scott committed
      id "com.diffplug.gradle.spotless" version "${spotlessVersion}"
      id "com.github.spotbugs" version "${spotbugsVersion}"
      id "com.github.johnrengelman.shadow" version "${shadowVersion}"
      id "com.star-zero.gradle.githook" version "${githooksVersion}"
    
    Clayton, Brandon Scott's avatar
    Clayton, Brandon Scott committed
      id "eclipse-wtp"
      id "jacoco"
    
    Clayton, Brandon Scott's avatar
    Clayton, Brandon Scott committed
      id "net.ltgt.apt-eclipse" version "${aptEclipseVersion}"
    
    Powers, Peter M.'s avatar
    Powers, Peter M. committed
    
    
    apply from: "${projectDir}/gradle/ext.gradle"
    apply from: "${projectDir}/gradle/jar.gradle"
    apply from: "${projectDir}/gradle/javadoc.gradle"
    apply from: "${projectDir}/gradle/tasks.gradle"
    
    
    sourceCompatibility = JavaVersion.VERSION_11
    
    Clayton, Brandon Scott's avatar
    Clayton, Brandon Scott committed
    compileJava.options.encoding = "UTF-8"
    
    mainClassName = "gov.usgs.earthquake.nshmp.www.Application"
    
    Powers, Peter M.'s avatar
    Powers, Peter M. committed
    jacoco {
    
    Clayton, Brandon Scott's avatar
    Clayton, Brandon Scott committed
      toolVersion = "0.8.4"
    
    Powers, Peter M.'s avatar
    Powers, Peter M. committed
    repositories {
      jcenter()
    }
    
    
      implementation("https://code.usgs.gov/ghsc/nshmp/nshmp-lib.git", {
    
        name "nshmp-haz-dep--nshmp-lib"
    
    apply from: "${nshmpLibGradleDir}/git-hooks.gradle"
    apply from: "${nshmpLibGradleDir}/spotbugs.gradle"
    apply from: "${nshmpLibGradleDir}/spotless.gradle"
    
    dependencies {
    
    Clayton, Brandon Scott's avatar
    Clayton, Brandon Scott committed
      // AWS
      implementation "com.amazonaws:aws-lambda-java-core:${awsLambdaCoreVersion}"
      implementation "com.amazonaws:aws-java-sdk-lambda:${awsLambdaVersion}"
      implementation "com.amazonaws:aws-java-sdk-s3:${awsS3Version}"
      implementation "com.amazonaws:aws-java-sdk-ec2:${awsEc2Version}"
    
      // 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"
    
    Powers, Peter M.'s avatar
    Powers, Peter M. committed
    test {
    
    Clayton, Brandon Scott's avatar
    Clayton, Brandon Scott committed
      useJUnitPlatform()
    
    Powers, Peter M.'s avatar
    Powers, Peter M. committed
    }
    
    jacocoTestReport {
      reports {
        xml.enabled true
    
    Powers, Peter M.'s avatar
    Powers, Peter M. committed
        html.enabled true
    
        classDirectories.from(files(classDirectories.files.collect {
    
              dir: it,
    
    Clayton, Brandon Scott's avatar
    Clayton, Brandon Scott committed
              exclude: ["**/etc/**"])
    
    Powers, Peter M.'s avatar
    Powers, Peter M. committed
    check.dependsOn jacocoTestReport
    
    Clayton, Brandon Scott's avatar
    Clayton, Brandon Scott committed
    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 */
    
    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'
        }