// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        google()
        jcenter()
        maven { url "https://plugins.gradle.org/m2/" }
        maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.2'
        classpath 'com.jakewharton:butterknife-gradle-plugin:9.0.0-SNAPSHOT'
        classpath "gradle.plugin.org.nosphere.apache:creadur-rat-gradle:0.2.1"
        classpath 'de.hdodenhof:circleimageview:2.2.0'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven { url "https://www.jitpack.io" }
        maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }
    }
}
apply plugin: "org.nosphere.apache.rat"
rat {
    inputDir='app/src'
    plainOutput = true
}


ext {
    // Sdk and tools
    minSdkVersion = 17
    targetSdkVersion = 28
    compileSdkVersion = 28
    buildToolsVersion = '28.0.3'

    // App dependencies
    rxJava2Version = '2.0.2'
    supportLibraryVersion = '28.0.0'
    raizLabsDBFlow = '3.1.1'
    retrofitVersionLatest = '2.3.0'
    okHttp3Version = '3.9.1'
    butterKnifeVersion = '9.0.0-SNAPSHOT'
    stetho='1.5.0'
    leakcanary ='1.5.4'
    dagger='2.8'

    espresso = '2.2.2'
    runner = '0.4'
}