
buildscript {
    repositories {
        mavenCentral()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'
    }
}

plugins {
    id "de.undercouch.download" version "3.2.0"
//    id "com.github.dcendents.android-maven" version "1.5"
}

repositories {
        mavenCentral()
        jcenter()
}

subprojects {
    repositories {
        mavenCentral()
        jcenter()
    }
    buildscript {
        repositories {
            mavenCentral()
            jcenter()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:2.3.3'
            classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0'
            classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
        }
    }
    ext {
        compileSdkVersion=25
        buildToolsVersion="25.0.3"
        minSdkVersion=14
        appMinSdkVersion=15
        targetSdkVersion=25
        supportLibVersion="25.3.1"
        fastjsonLibVersion="1.1.46.android"
    }
}

//task clean(type: Delete) {
//    delete rootProject.buildDir
//}
