Permalink
// Top-level build file where you can add configuration options common to all sub-projects/modules. | |
buildscript { | |
repositories { | |
jcenter() | |
} | |
dependencies { | |
// Android Gradle plugin | |
classpath 'com.android.tools.build:gradle:1.5.0' | |
// Resolves android-sdk dependencies | |
classpath 'com.jakewharton.sdkmanager:gradle-plugin:0.12.0' | |
// APT compile-time annotation processing | |
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4' | |
// Jacoco Test Coverage Plugin | |
// (addition to standard Jacoco plugin, allows us fail the build if coverage is not enough) | |
// https://github.com/palantir/gradle-jacoco-coverage | |
classpath 'com.palantir:jacoco-coverage:0.2.0' | |
// NOTE: Do not place your application dependencies here; they belong | |
// in the individual module build.gradle files | |
} | |
} | |
allprojects { | |
repositories { | |
jcenter() | |
} | |
// Workaround for preventing Gradle from stealing focus from other apps | |
// https://gist.github.com/artem-zinnatullin/4c250e04636e25797165 | |
tasks.withType(JavaForkOptions) { | |
jvmArgs '-Djava.awt.headless=true' | |
} | |
} | |
task wrapper(type: Wrapper) { | |
gradleVersion = '2.9' | |
} | |
ext { | |
buildToolsVersion = '23.0.1' | |
compileSdkVersion = 23 | |
minSdkVersion = 14 | |
} | |
def supportLibsVersion = '23.1.0' | |
def daggerVersion = '2.0.1' | |
ext.libraries = [ | |
// Core libraries | |
supportAnnotations : 'com.android.support:support-annotations:' + supportLibsVersion, | |
rxJava : 'io.reactivex:rxjava:1.1.1', | |
// Parts of StorIO | |
storIOCommon : project(':storio-common'), | |
storIOSQLite : project(':storio-sqlite'), | |
storIOContentResolver : project(':storio-content-resolver'), | |
storIOSQLiteAnnotations : project(':storio-sqlite-annotations'), | |
storIOContentResolverAnnotations : project(':storio-content-resolver-annotations'), | |
storIOCommonAnnotationsProcessor : project(':storio-common-annotations-processor'), | |
storIOSQLiteAnnotationsProcessor : project(':storio-sqlite-annotations-processor'), | |
storIOContentResolverAnnotationsProcessor : project(':storio-content-resolver-annotations-processor'), | |
storIOTestCommon : project(':storio-test-common'), | |
// Libraries for tests and sample app | |
junit : 'junit:junit:4.12', | |
assertJ : 'org.assertj:assertj-core:1.7.1', | |
assertJAndroid : 'com.squareup.assertj:assertj-android:1.0.1', | |
mockitoCore : 'org.mockito:mockito-core:1.10.19', | |
powerMockJUnit : 'org.powermock:powermock-module-junit4:1.6.2', | |
powerMockMockito : 'org.powermock:powermock-api-mockito:1.6.2', | |
equalsVerifier : 'nl.jqno.equalsverifier:equalsverifier:1.7.2', | |
privateConstructorChecker : 'com.pushtorefresh.java-private-constructor-checker:checker:1.1.0', | |
guava : 'com.google.guava:guava:18.0', | |
robolectric : 'org.robolectric:robolectric:3.0', | |
dagger : 'com.google.dagger:dagger:' + daggerVersion, | |
daggerCompiler : 'com.google.dagger:dagger-compiler:' + daggerVersion, | |
javaxInject : 'javax.inject:javax.inject:1', | |
javaxAnnotationApi : 'javax.annotation:javax.annotation-api:1.2', | |
butterKnife : 'com.jakewharton:butterknife:7.0.1', | |
appCompat : 'com.android.support:appcompat-v7:' + supportLibsVersion, | |
recyclerView : 'com.android.support:recyclerview-v7:' + supportLibsVersion, | |
rxAndroid : 'io.reactivex:rxandroid:1.0.1', | |
timber : 'com.jakewharton.timber:timber:3.0.1', | |
leakCanary : 'com.squareup.leakcanary:leakcanary-android:1.3.1', | |
leakCanaryNoOp : 'com.squareup.leakcanary:leakcanary-android-no-op:1.3.1', | |
autoService : 'com.google.auto.service:auto-service:1.0-rc2', | |
javaPoet : 'com.squareup:javapoet:1.2.0', | |
intellijAnnotations : 'com.intellij:annotations:12.0', | |
autoParcel : 'com.github.frankiesardo:auto-parcel:0.3', | |
autoParcelProcessor : 'com.github.frankiesardo:auto-parcel-processor:0.3' | |
] | |
// Option to disable Pre-Dexing on CI env | |
project.ext.preDexLibs = !project.hasProperty('disablePreDex') | |
subprojects { | |
project.plugins.whenPluginAdded { plugin -> | |
if ('com.android.build.gradle.AppPlugin'.equals(plugin.class.name) | |
|| 'com.android.build.gradle.LibraryPlugin'.equals(plugin.class.name)) { | |
// enable or disable pre-dexing | |
project.android.dexOptions.preDexLibraries = rootProject.ext.preDexLibs | |
// treat all Android Lint warning in all sub-projects as errors | |
project.android.lintOptions.warningsAsErrors = true | |
// StorIO should support Java 6 | |
project.android.compileOptions.sourceCompatibility = JavaVersion.VERSION_1_6 | |
project.android.compileOptions.targetCompatibility = JavaVersion.VERSION_1_6 | |
project.android.testOptions.unitTests.all { | |
testLogging { | |
events 'passed', 'skipped', 'failed', 'standardOut', 'standardError' | |
exceptionFormat 'full' | |
} | |
} | |
} | |
} | |
} |