buildscript {
    repositories {
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        classpath "net.ltgt.gradle:gradle-errorprone-plugin:0.0.13"
    }
}

apply plugin: "net.ltgt.errorprone"
apply plugin: 'com.android.library'

android {
    compileSdkVersion 28

    android {
        lintOptions {
            disable 'InvalidPackage'
            disable 'NewApi'
        }
    }

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 28
        versionName VERSION_NAME

        testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
    }
}

repositories {
    jcenter()
    google()
}

dependencies {
    compileOnly project(':dexmaker-mockito')
    androidTestImplementation project(':dexmaker-mockito')

    implementation 'com.android.support.test:runner:0.5'
    implementation 'junit:junit:4.12'
    api 'org.mockito:mockito-core:2.25.0', { exclude group: 'net.bytebuddy' }
}
