Last active
June 30, 2017 18:01
-
-
Save robertoallende/ac38c10b4749f0fae4f44098c4596713 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Top-level build file where you can add configuration options common to all sub-projects/modules. | |
buildscript { | |
repositories { | |
jcenter() | |
maven { url 'https://maven.fabric.io/public' } | |
} | |
dependencies { | |
classpath 'com.android.tools.build:gradle:2.3.3' | |
// Better IDE support for annotations (so Android Studio interacts better with Dagger) | |
// Disabled because gradle 2.3.3 | |
// classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' | |
classpath 'io.fabric.tools:gradle:1.15.2' | |
// NOTE: Do not place your application dependencies here; they belong | |
// in the individual module build.gradle files | |
} | |
} | |
allprojects { | |
repositories { | |
jcenter() | |
} | |
} | |
task clean(type: Delete) { | |
delete rootProject.buildDir | |
} | |
ext { | |
// Sdk and tools | |
minSdkVersion = 15 | |
targetSdkVersion = 25 | |
compileSdkVersion = 25 | |
buildToolsVersion = '25.0.2' | |
// App dependencies | |
supportLibraryVersion = '25.3.1' | |
guavaVersion = '18.0' | |
junitVersion = '4.12' | |
mockitoVersion = '1.10.19' | |
powerMockito = '1.6.2' | |
hamcrestVersion = '1.3' | |
runnerVersion = '0.5' | |
rulesVersion = '0.5' | |
espressoVersion = '2.2.2' | |
daggerVersion = '2.11' | |
dexmakerVersion = '1.2' | |
timberVersion = '4.5.1' | |
leakcanaryVersion = '1.5' | |
retrofitVersion = '2.3.0' | |
loggingInterceptor = '3.8.1' | |
commonsValidator = '1.5.1' | |
constraintLayout = '1.0.2' | |
javaxAnnotation = '10.0-b28' | |
constraintLayout = '1.0.2' | |
} | |
// build.gradle app level | |
buildscript { | |
repositories { | |
maven { url 'https://maven.fabric.io/public' } | |
} | |
dependencies { | |
classpath 'io.fabric.tools:gradle:1.+' | |
} | |
} | |
apply plugin: 'com.android.application' | |
apply plugin: 'io.fabric' | |
repositories { | |
maven { url 'https://maven.fabric.io/public' } | |
} | |
configurations { | |
mockDebugCompile | |
prodDebugCompile | |
prodReleaseCompile | |
} | |
android { | |
compileSdkVersion rootProject.ext.compileSdkVersion | |
buildToolsVersion rootProject.ext.buildToolsVersion | |
defaultConfig { | |
applicationId "myapp.com" | |
minSdkVersion 15 | |
targetSdkVersion 15 | |
versionCode 1 | |
versionName "1.0" | |
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" | |
} | |
buildTypes { | |
debug { | |
ext.enableCrashlytics = false | |
minifyEnabled false | |
// Uses new built-in shrinker http://tools.android.com/tech-docs/new-build-system/built-in-shrinker | |
useProguard true | |
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' | |
testProguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguardTest-rules.pro' | |
} | |
release { | |
minifyEnabled true | |
useProguard true | |
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' | |
testProguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguardTest-rules.pro' | |
} | |
} | |
// If you need to add more flavors, consider using flavor dimensions. | |
productFlavors { | |
mock { | |
applicationIdSuffix = ".mock" | |
} | |
prod { | |
minSdkVersion 15 | |
applicationId 'myapp.com' | |
targetSdkVersion 15 | |
versionCode 1 | |
versionName "1.0" | |
} | |
} | |
// Remove mockRelease as it's not needed. | |
android.variantFilter { variant -> | |
if (variant.buildType.name.equals('release') | |
&& variant.getFlavors().get(0).name.equals('mock')) { | |
variant.setIgnore(true); | |
} | |
} | |
// Always show the result of every unit test, even if it passes. | |
testOptions.unitTests.all { | |
testLogging { | |
events 'passed', 'skipped', 'failed', 'standardOut', 'standardError' | |
} | |
} | |
dataBinding { | |
enabled = true | |
} | |
} | |
dependencies { | |
// App's dependencies, including test | |
compile "com.android.support:appcompat-v7:$rootProject.supportLibraryVersion" | |
compile "com.android.support:cardview-v7:$rootProject.supportLibraryVersion" | |
compile "com.android.support:design:$rootProject.supportLibraryVersion" | |
compile "com.android.support:recyclerview-v7:$rootProject.supportLibraryVersion" | |
compile "com.android.support:support-v4:$rootProject.supportLibraryVersion" | |
compile "com.android.support.test.espresso:espresso-idling-resource:$rootProject.espressoVersion" | |
compile "com.google.guava:guava:$rootProject.guavaVersion" | |
compile "com.squareup.retrofit2:converter-gson:$rootProject.retrofitVersion" | |
compile "com.squareup.retrofit2:retrofit:$rootProject.retrofitVersion" | |
compile("commons-validator:commons-validator:$rootProject.commonsValidator") | |
{ | |
exclude group: 'commons-logging', module: 'commons-logging' | |
} | |
provided "org.glassfish:javax.annotation:$rootProject.javaxAnnotation" | |
compile "com.android.support.constraint:constraint-layout:$rootProject.constraintLayout" | |
compile "com.google.dagger:dagger:$rootProject.daggerVersion" | |
dependencies { | |
annotationProcessor "com.google.dagger:dagger-compiler:$rootProject.daggerVersion" | |
} | |
// Dependencies for local unit tests | |
testCompile "junit:junit:$rootProject.ext.junitVersion" | |
testCompile "org.mockito:mockito-all:$rootProject.ext.mockitoVersion" | |
testCompile "org.hamcrest:hamcrest-all:$rootProject.ext.hamcrestVersion" | |
// Android Testing Support Library's runner and rules | |
androidTestCompile "com.android.support.test:runner:$rootProject.ext.runnerVersion" | |
androidTestCompile "com.android.support.test:rules:$rootProject.ext.runnerVersion" | |
// Dependencies for Android unit tests | |
androidTestCompile "junit:junit:$rootProject.ext.junitVersion" | |
androidTestCompile "org.mockito:mockito-core:$rootProject.ext.mockitoVersion" | |
androidTestCompile "com.google.dexmaker:dexmaker:$rootProject.ext.dexmakerVersion" | |
androidTestCompile "com.google.dexmaker:dexmaker-mockito:$rootProject.ext.dexmakerVersion" | |
// Espresso UI Testing | |
androidTestCompile "com.android.support.test.espresso:espresso-core:$rootProject.espressoVersion" | |
androidTestCompile "com.android.support.test.espresso:espresso-contrib:$rootProject.espressoVersion" | |
androidTestCompile "com.android.support.test.espresso:espresso-intents:$rootProject.espressoVersion" | |
// Resolve conflicts between main and test APK | |
compile "com.android.support:support-annotations:$rootProject.supportLibraryVersion" | |
androidTestCompile "com.android.support:support-v4:$rootProject.supportLibraryVersion" | |
androidTestCompile "com.android.support:recyclerview-v7:$rootProject.supportLibraryVersion" | |
androidTestCompile "com.android.support:appcompat-v7:$rootProject.supportLibraryVersion" | |
androidTestCompile "com.android.support:design:$rootProject.supportLibraryVersion" | |
// Libraries used just in development mode | |
compile "com.jakewharton.timber:timber:$rootProject.timberVersion" | |
testCompile "com.squareup.leakcanary:leakcanary-android-no-op:$rootProject.leakcanaryVersion" | |
debugCompile "com.squareup.leakcanary:leakcanary-android:$rootProject.leakcanaryVersion" | |
prodDebugCompile "com.squareup.okhttp3:logging-interceptor:$rootProject.loggingInterceptor" | |
prodReleaseCompile "com.squareup.leakcanary:leakcanary-android-no-op:$rootProject.leakcanaryVersion" | |
compile('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') | |
{ | |
transitive = true; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment