| plugins { |
| id 'java' |
| id 'checkstyle' |
| id "com.github.jk1.dependency-license-report" version "1.14" |
| id 'com.github.sherter.google-java-format' version '0.9' |
| id "com.github.spotbugs" version "4.4.2" |
| id "com.jfrog.artifactory" version "4.15.2" |
| id "net.ltgt.apt" version "0.21" |
| id "net.ltgt.errorprone" version "1.2.1" |
| } |
| |
| /* |
| * When you check a version of the library, place the date that you checked it next to the library. |
| * TODOs indicate who has context for the upgrade and any reasons it may be delayed, not necessarily |
| * who should perform it. |
| **/ |
| ext.libVersions = [ |
| // Core Libraries |
| "guava": "29.0-jre", // 22 June 2020 |
| "guice": "4.2.3", // 22 June 2020 |
| "autoValue": "1.7.4", // 2 August 2020 |
| |
| // Logging |
| "flogger": "0.5.1", // 22 June 2020 |
| "floggerBackend": "0.5.1", // 25 June 2020 |
| "logback": "1.2.3", // 16 January 2020 |
| "slf4j": "1.7.30", // 16 January 2020 |
| |
| // Client Libraries |
| "httpClient": "4.5.12", // 22 June 2020 |
| |
| // Helper Libraries |
| "apacheCommonsValidator": "1.4.0", // 25 June 2020 |
| |
| // Build Utilities |
| "errorprone":"2.4.0", // 22 June 2020 |
| "errorproneJavacVersion":"9+181-r4173-1", // 22 June 2020 |
| "jacoco": "0.8.5", // 22 June 2020 |
| "spotbugs": "4.0.4", // 22 June 2020 |
| |
| // Test |
| "junit": "4.13", // 22 June 2020 |
| "mockito": "3.3.3", // 22 June 2020 |
| "assertj": "3.16.1", // 26 June 2020 |
| |
| // Command Line Utility Libraries |
| "jcommander": "1.78", // 22 June 2020 |
| |
| // OpenAPI Libraries |
| "openapiParser": "1.0.1", // 23 June 2020 |
| "openapiCore": "1.0.1", // 23 June 2020 |
| |
| // Json Libraries |
| "jsonSchemaValidator": "1.0.42" // 13 July 2020 |
| ] |
| |
| allprojects { |
| apply plugin: 'checkstyle' |
| apply plugin: 'idea' |
| apply plugin: 'jacoco' |
| apply plugin: 'java' |
| |
| apply plugin: "com.github.jk1.dependency-license-report" |
| apply plugin: 'com.github.sherter.google-java-format' |
| apply plugin: "com.github.spotbugs" |
| apply plugin: 'net.ltgt.apt-idea' |
| apply plugin: "net.ltgt.errorprone" |
| |
| sourceCompatibility = 11 |
| targetCompatibility = 11 |
| |
| googleJavaFormat { |
| toolVersion = '1.7' |
| } |
| |
| repositories { |
| mavenCentral() |
| jcenter() |
| } |
| |
| dependencies { |
| checkstyle 'com.puppycrawl.tools:checkstyle:8.24' |
| errorproneJavac("com.google.errorprone:javac:${libVersions.errorproneJavacVersion}") |
| errorprone "com.google.errorprone:error_prone_core:${libVersions.errorprone}" |
| |
| implementation "com.google.flogger:flogger:${libVersions.flogger}" |
| implementation "com.google.flogger:flogger-system-backend:${libVersions.floggerBackend}" |
| implementation "com.google.guava:guava:${libVersions.guava}" |
| implementation "com.google.inject:guice:${libVersions.guice}" |
| implementation "commons-validator:commons-validator:${libVersions.apacheCommonsValidator}" |
| } |
| |
| checkstyle { |
| configFile = file("$rootDir/config/checkstyle/checkstyle.xml") |
| } |
| |
| checkstyleMain { |
| logging.setLevel(LogLevel.LIFECYCLE) |
| } |
| |
| checkstyleTest { |
| logging.setLevel(LogLevel.LIFECYCLE) |
| } |
| |
| group 'com.apigee.security.oas' |
| version '1.0-SNAPSHOT' |
| |
| |
| spotbugs { |
| toolVersion = libVersions.spotbugs |
| excludeFilter = file("$rootDir/spotbugs-exclude.xml") |
| effort = "max" |
| reportLevel = "low" |
| } |
| |
| tasks.withType(JavaCompile).configureEach { |
| options.errorprone { |
| disableWarningsInGeneratedCode = true |
| allDisabledChecksAsWarnings = true |
| error("Var") |
| disable("AndroidJdkLibsChecker") |
| disable("StaticOrDefaultInterfaceMethod") |
| disable("Java7ApiChecker") |
| excludedPaths = ".*/build/generated/.*" // Required due to https://github.com/google/error-prone/issues/1165 |
| } |
| } |
| |
| jacoco { |
| toolVersion = libVersions.jacoco |
| } |
| |
| jacocoTestReport { |
| reports { |
| xml.enabled true |
| csv.enabled false |
| html.enabled true |
| } |
| |
| } |
| |
| jacocoTestCoverageVerification { |
| violationRules { |
| rule { |
| limit { |
| minimum = 0.90 |
| } |
| |
| limit { |
| counter="BRANCH" |
| minimum = 0.90 |
| } |
| } |
| } |
| } |
| |
| gradle.projectsEvaluated { |
| tasks.withType(JavaCompile) { |
| options.compilerArgs << "-Werror" |
| } |
| } |
| |
| licenseReport { |
| configurations = ['runtimeClasspath'] |
| } |
| |
| jacocoTestCoverageVerification.dependsOn jacocoTestReport |
| |
| jacocoTestReport.mustRunAfter check |
| jacocoTestReport.mustRunAfter test |
| |
| build.dependsOn jacocoTestReport |
| |
| jacocoTestCoverageVerification.mustRunAfter build |
| } |
| |
| subprojects { |
| apply plugin: 'distribution' |
| apply plugin: 'net.ltgt.apt' |
| |
| idea { |
| module { |
| // Marks the already(!) added srcDir as "generated" |
| generatedSourceDirs += file('build/generated/sources/annotationProcessor/java') |
| } |
| } |
| |
| build.dependsOn check |
| build.dependsOn distTar |
| } |
| |
| defaultTasks 'build' |