134 lines
3.8 KiB
Groovy
134 lines
3.8 KiB
Groovy
buildscript {
|
|
repositories {
|
|
google()
|
|
mavenCentral()
|
|
maven { url "https://plugins.gradle.org/m2/" }
|
|
jcenter()
|
|
}
|
|
dependencies {
|
|
classpath 'com.android.tools.build:gradle:3.6.3'
|
|
classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:1.0.2'
|
|
classpath 'de.timfreiheit.resourceplaceholders:placeholders:0.3'
|
|
classpath "gradle.plugin.com.github.spotbugs.snom:spotbugs-gradle-plugin:4.7.0"
|
|
}
|
|
}
|
|
|
|
allprojects {
|
|
repositories {
|
|
google()
|
|
mavenCentral()
|
|
maven { url "https://jitpack.io" }
|
|
jcenter()
|
|
}
|
|
|
|
gradle.projectsEvaluated {
|
|
tasks.withType(JavaCompile) {
|
|
options.compilerArgs << "-Xlint"
|
|
}
|
|
}
|
|
|
|
apply plugin: 'com.github.spotbugs'
|
|
|
|
spotbugs {
|
|
effort = 'max'
|
|
reportLevel = 'high' // for now
|
|
excludeFilter = rootProject.file('config/spotbugs/exclude.xml')
|
|
ignoreFailures = true // Handled by printing task
|
|
}
|
|
|
|
gradle.taskGraph.beforeTask { task ->
|
|
if (task.name.toLowerCase().contains('spotbugs')) {
|
|
task.doLast {
|
|
def reportFile = task.project.file("build/reports/spotbugs/playDebug.xml")
|
|
if (!reportFile.exists()) return
|
|
def slurped = new XmlSlurper().parse(reportFile)
|
|
|
|
def foundErrors = false
|
|
slurped['BugInstance'].each { bug ->
|
|
logger.error "[SpotBugs] ${bug['LongMessage']} [${bug.@'type'}]"
|
|
bug['SourceLine'].each { line ->
|
|
logger.error "[SpotBugs] ${line['Message']}"
|
|
foundErrors = true
|
|
}
|
|
}
|
|
if (foundErrors) {
|
|
throw new TaskExecutionException(task,
|
|
new Exception("SpotBugs violations were found. See output above for details."))
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Disable predex if requested (we can"t predex in Circle CI
|
|
// See http://tools.android.com/tech-docs/new-build-system/tips#TOC-Improving-Build-Server-performance
|
|
// and https://circleci.com/docs/android
|
|
project.ext.preDexLibs = !project.hasProperty("disablePreDex")
|
|
|
|
subprojects {
|
|
project.plugins.whenPluginAdded { plugin ->
|
|
if ("com.android.build.gradle.AppPlugin" == plugin.class.name) {
|
|
project.android.dexOptions.preDexLibraries = rootProject.ext.preDexLibs
|
|
} else if ("com.android.build.gradle.LibraryPlugin" == plugin.class.name) {
|
|
project.android.dexOptions.preDexLibraries = rootProject.ext.preDexLibs
|
|
}
|
|
}
|
|
}
|
|
|
|
project.ext {
|
|
compileSdkVersion = 30
|
|
minSdkVersion = 16
|
|
targetSdkVersion = 30
|
|
|
|
// AndroidX
|
|
annotationVersion = "1.1.0"
|
|
appcompatVersion = "1.2.0"
|
|
mediaVersion = "1.1.0"
|
|
preferenceVersion = "1.1.1"
|
|
workManagerVersion = "2.3.4"
|
|
googleMaterialVersion = "1.1.0"
|
|
|
|
// Third-party
|
|
commonslangVersion = "3.6"
|
|
commonsioVersion = "2.5"
|
|
jsoupVersion = "1.11.2"
|
|
glideVersion = "4.8.0"
|
|
okhttpVersion = "3.12.10"
|
|
okioVersion = "1.17.5"
|
|
eventbusVersion = "3.2.0"
|
|
rxAndroidVersion = "2.1.1"
|
|
rxJavaVersion = "2.2.2"
|
|
iconifyVersion = "2.2.2"
|
|
audioPlayerVersion = "v2.0.0"
|
|
|
|
// Only used for free builds. This version should be updated regularly.
|
|
conscryptVersion = "2.4.0"
|
|
|
|
// Google Play build
|
|
wearableSupportVersion = "2.6.0"
|
|
playServicesVersion = "8.4.0"
|
|
|
|
//Tests
|
|
awaitilityVersion = "3.1.6"
|
|
robotiumSoloVersion = "5.6.3"
|
|
espressoVersion = "3.2.0"
|
|
runnerVersion = "1.2.0"
|
|
rulesVersion = "1.2.0"
|
|
}
|
|
|
|
wrapper {
|
|
gradleVersion = "6.3"
|
|
}
|
|
|
|
apply plugin: "checkstyle"
|
|
checkstyle {
|
|
toolVersion '8.24'
|
|
}
|
|
|
|
task checkstyle(type: Checkstyle) {
|
|
classpath = files()
|
|
source "${project.rootDir}"
|
|
exclude("**/gen/**")
|
|
exclude("**/generated/**")
|
|
}
|