blob: 5d69ecac50ae9b24f118cde02a8c190f57e470c3 [file]
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
// Logging
"flogger": "0.5.1", // 22 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
// 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
// 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
]
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.guava:guava:${libVersions.guava}"
implementation "com.google.inject:guice:${libVersions.guice}"
//testCompile project(':oas-test')
//testImplementation "junit:junit:${libVersions.junit}"
//testImplementation "org.mockito:mockito-core:${libVersions.mockito}"
}
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
// TODO(ttourani): Create spotbugs-exclude.xml
//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'