blob: e664b4e7874a04ab616b36a9454d65f6da61e02d [file] [log] [blame] [edit]
apply plugin: 'com.github.ben-manes.versions'
buildscript {
ext.versions = [
'minSdk' : 14,
'compileSdk': 28,
'errorProne': '2.3.1',
'kotlin' : '1.3.21',
]
ext.deps = [
assertj_core : 'org.assertj:assertj-core:3.9.1',
// We don't need the latest version of AndroidX (there are no bugs that impact what LeakCanary
// relies on), we're sticking a bit older because most apps will be using a more recent version
// and they'll automatically resolve to higher version without having to necessarily resort to a
// resolution strategy.
androidx : [
annotation: 'androidx.annotation:annotation:1.0.2',
core: 'androidx.core:core:1.0.1',
fragment : 'androidx.fragment:fragment:1.0.0',
test : [
core : 'androidx.test:core:1.1.0',
espresso: 'androidx.test.espresso:espresso-core:3.1.1',
rules : 'androidx.test:rules:1.1.1',
runner : 'androidx.test:runner:1.1.1',
]
],
haha : 'com.squareup.haha:haha:2.1',
junit : 'junit:junit:4.12',
kotlin : [
gradlePlugin: "org.jetbrains.kotlin:kotlin-gradle-plugin:${versions.kotlin}",
stdlib : "org.jetbrains.kotlin:kotlin-stdlib:${versions.kotlin}"
],
mockito : 'org.mockito:mockito-core:2.7.5',
mockito_kotlin: 'com.nhaarman:mockito-kotlin-kt1.1:1.5.0',
robolectric : 'org.robolectric:robolectric:4.0-alpha-3'
]
repositories {
google()
maven { url 'https://plugins.gradle.org/m2/' }
jcenter()
}
dependencies {
classpath deps.kotlin.gradlePlugin
classpath 'com.android.tools.build:gradle:3.2.0'
classpath 'net.ltgt.gradle:gradle-errorprone-plugin:0.0.16'
classpath 'com.github.ben-manes:gradle-versions-plugin:0.20.0'
}
}
subprojects {
group = GROUP
version = VERSION_NAME
repositories {
google()
// maven {
// url 'https://oss.sonatype.org/content/repositories/snapshots/'
// }
// mavenLocal()
jcenter()
}
apply plugin: 'net.ltgt.errorprone'
tasks.withType(JavaCompile) {
options.compilerArgs += [
'-Xlint:all',
'-Xlint:-serial',
'-Xlint:-deprecation',
// espresso-core classes say they're compiled with 51.0 but contain 52.0 attributes.
// warning: [classfile] MethodParameters attribute introduced in version 52.0 class files is ignored in version 51.0 class files
// '-Werror'
]
}
configurations.all {
resolutionStrategy {
eachDependency { details ->
// Force all the error-prone dependencies to use the same version.
if (details.requested.group == 'com.google.errorprone' &&
details.requested.name.startsWith('error_prone_')) {
details.useVersion versions.errorProne
}
}
}
}
tasks.withType(Test) {
testLogging {
exceptionFormat 'FULL'
showCauses true
showExceptions true
showStackTraces true
}
}
dependencies {
errorprone "com.google.errorprone:error_prone_core:${versions.errorProne}"
}
}