From c95b077342800b9b494d3e0ea739080668311e31 Mon Sep 17 00:00:00 2001 From: Aditya Ladwa Date: Tue, 13 Feb 2018 14:50:34 +0530 Subject: [PATCH 1/2] Build: Added buildSrc for dependency management --- build.gradle | 2 +- buildSrc/build.gradle.kts | 3 + buildSrc/src/main/java/Dependencies.kt | 200 +++++++++++++++++++++++++ dependencies.gradle | 4 +- 4 files changed, 206 insertions(+), 3 deletions(-) create mode 100644 buildSrc/build.gradle.kts create mode 100644 buildSrc/src/main/java/Dependencies.kt diff --git a/build.gradle b/build.gradle index 7fd981b..818ee60 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.0.0-beta2' + classpath 'com.android.tools.build:gradle:3.0.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "com.dicedmelon.gradle:jacoco-android:0.1.1" diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts new file mode 100644 index 0000000..46f9c3f --- /dev/null +++ b/buildSrc/build.gradle.kts @@ -0,0 +1,3 @@ +plugins { + `kotlin-dsl` +} \ No newline at end of file diff --git a/buildSrc/src/main/java/Dependencies.kt b/buildSrc/src/main/java/Dependencies.kt new file mode 100644 index 0000000..cf48c27 --- /dev/null +++ b/buildSrc/src/main/java/Dependencies.kt @@ -0,0 +1,200 @@ +object Versions { + //Android + const val androidBuildToolsVersion = "27.0.0" + const val androidMinSdkVersion = 15 + const val androidTargetSdkVersion = 26 + const val androidCompileSdkVersion = 26 + + //Libraries + const val kotlinVersion = "1.1.3-2" + const val butterKnifeVersion = "7.0.1" + const val recyclerViewVersion = "21.0.3" + const val rxJavaVersion = "2.0.2" + const val rxKotlinVersion = "2.1.0" + const val rxAndroidVersion = "2.0.1" + const val javaxAnnotationVersion = "1.0" + const val javaxInjectVersion = "1" + const val gsonVersion = "2.8.1" + const val okHttpVersion = "3.8.1" + const val androidAnnotationsVersion = "21.0.3" + const val retrofitVersion = "2.3.0" + const val roomVersion = "1.0.0-alpha6" + const val supportLibraryVersion = "26.0.1" + const val timberVersion = "4.5.1" + const val glideVersion = "4.0.0" + const val daggerVersion = "2.11" + const val glassfishAnnotationVersion = "10.0-b28" + + //Testing + const val robolectricVersion = "3.4.2" + const val jUnitVersion = "4.12" + const val assertJVersion = "3.8.0" + const val mockitoVersion = "1.9.5" + const val dexmakerVersion = "1.0" + const val espressoVersion = "3.0.0" + const val testingSupportLibVersion = "0.1" + const val mockitoKotlinVersion = "1.5.0" + const val mockitoAndroidVersion = "2.8.47" + const val androidSupportRunnerVersion = "1.0.0" + const val androidSupportRulesVersion = "1.0.0" + const val dexmakerMockitoversion = "2.2.0" + const val runnerVersion = "0.5" +} + + +object domainDependencies { + val javaxAnnotation = "javax.annotation:jsr250-api:${Versions.javaxAnnotationVersion}" + val javaxInject = "javax.inject:javax.inject:${Versions.javaxInjectVersion}" + val rxKotlin = "io.reactivex.rxjava2:rxkotlin:${Versions.rxKotlinVersion}" + val kotlin = "org.jetbrains.kotlin:kotlin-stdlib-jre8:${Versions.kotlinVersion}" +} + +object domainTest { + val junit = "junit:junit:${Versions.jUnitVersion}" + val mockito = "com.nhaarman:mockito-kotlin:${Versions.mockitoKotlinVersion}" + val assertj = "org.assertj:assertj-core:${Versions.assertJVersion}" + +} + +object presentationDependencies { + val daggerCompiler = "com.google.dagger:dagger-compiler:${Versions.daggerVersion}" + val dagger = "com.google.dagger:dagger:${Versions.daggerVersion}" + val okHttp = "com.squareup.okhttp3:okhttp:${Versions.okHttpVersion}" + val okHttpLogger = "com.squareup.okhttp3:logging-interceptor:${Versions.okHttpVersion}" + val gson = "com.google.code.gson:gson:${Versions.gsonVersion}" + val rxKotlin = "io.reactivex.rxjava2:rxkotlin:${Versions.rxKotlinVersion}" + val kotlin = "org.jetbrains.kotlin:kotlin-stdlib-jre8:${Versions.kotlinVersion}" + val rxAndroid = "io.reactivex.rxjava2:rxandroid:${Versions.rxAndroidVersion}" + val javaxAnnotation = "javax.annotation:jsr250-api:${Versions.javaxAnnotationVersion}" + val javaxInject = "javax.inject:javax.inject:${Versions.javaxInjectVersion}" + val androidAnnotations = "com.android.support:support-annotations:${Versions.androidAnnotationsVersion}" + val retrofit = "com.squareup.retrofit2:retrofit:${Versions.retrofitVersion}" + val retrofitConverter = "com.squareup.retrofit2:converter-gson:${Versions.retrofitVersion}" + val retrofitAdapter = "com.squareup.retrofit2:adapter-rxjava2:${Versions.retrofitVersion}" +} + + +object presentationTestDependencies { + val junit = "junit:junit:${Versions.jUnitVersion}" + val kotlinJUnit = "org.jetbrains.kotlin:kotlin-test-junit:${Versions.kotlinVersion}" + val assertj = "org.assertj:assertj-core:${Versions.assertJVersion}" + val mockito = "com.nhaarman:mockito-kotlin:${Versions.mockitoKotlinVersion}" + val robolectric = "org.robolectric:robolectric:${Versions.robolectricVersion}" +} + +object dataDependencies { + val daggerCompiler = "com.google.dagger:dagger-compiler:${Versions.daggerVersion}" + val dagger = "com.google.dagger:dagger:${Versions.daggerVersion}" + val okHttp = "com.squareup.okhttp3:okhttp:${Versions.okHttpVersion}" + val okHttpLogger = "com.squareup.okhttp3:logging-interceptor:${Versions.okHttpVersion}" + val gson = "com.google.code.gson:gson:${Versions.gsonVersion}" + val rxKotlin = "io.reactivex.rxjava2:rxkotlin:${Versions.rxKotlinVersion}" + val kotlin = "org.jetbrains.kotlin:kotlin-stdlib-jre8:${Versions.kotlinVersion}" + val rxAndroid = "io.reactivex.rxjava2:rxandroid:${Versions.rxAndroidVersion}" + val javaxAnnotation = "javax.annotation:jsr250-api:${Versions.javaxAnnotationVersion}" + val javaxInject = "javax.inject:javax.inject:${Versions.javaxInjectVersion}" + val androidAnnotations = "com.android.support:support-annotations:${Versions.androidAnnotationsVersion}" + val retrofit = "com.squareup.retrofit2:retrofit:${Versions.retrofitVersion}" + val retrofitConverter = "com.squareup.retrofit2:converter-gson:${Versions.retrofitVersion}" + val retrofitAdapter = "com.squareup.retrofit2:adapter-rxjava2:${Versions.retrofitVersion}" +} + + +object dataTestDependencies { + val junit = "junit:junit:${Versions.jUnitVersion}" + val kotlinJUnit = "org.jetbrains.kotlin:kotlin-test-junit:${Versions.kotlinVersion}" + val assertj = "org.assertj:assertj-core:${Versions.assertJVersion}" + val mockito = "com.nhaarman:mockito-kotlin:${Versions.mockitoKotlinVersion}" + val robolectric = "org.robolectric:robolectric:${Versions.robolectricVersion}" +} + +object cacheDependencies { + val daggerCompiler = "com.google.dagger:dagger-compiler:${Versions.daggerVersion}" + val dagger = "com.google.dagger:dagger:${Versions.daggerVersion}" + val gson = "com.google.code.gson:gson:${Versions.gsonVersion}" + val rxKotlin = "io.reactivex.rxjava2:rxkotlin:${Versions.rxKotlinVersion}" + val kotlin = "org.jetbrains.kotlin:kotlin-stdlib-jre8:${Versions.kotlinVersion}" + val javaxAnnotation = "javax.annotation:jsr250-api:${Versions.javaxAnnotationVersion}" + val javaxInject = "javax.inject:javax.inject:${Versions.javaxInjectVersion}" + val androidAnnotations = "com.android.support:support-annotations:${Versions.androidAnnotationsVersion}" + val roomRuntime = "android.arch.persistence.room:runtime:${Versions.roomVersion}" + val roomCompiler = "android.arch.persistence.room:compiler:${Versions.roomVersion}" + val roomRxJava = "android.arch.persistence.room:rxjava2:${Versions.roomVersion}" +} + + +object cacheTestDependencies { + val junit = "junit:junit:${Versions.jUnitVersion}" + val kotlinJUnit = "org.jetbrains.kotlin:kotlin-test-junit:${Versions.kotlinVersion}" + val assertj = "org.assertj:assertj-core:${Versions.assertJVersion}" + val mockito = "com.nhaarman:mockito-kotlin:${Versions.mockitoKotlinVersion}" + val robolectric = "org.robolectric:robolectric:${Versions.robolectricVersion}" + val roomTesting = "android.arch.persistence.room:testing:${Versions.roomVersion}" + val archTesting = "android.arch.core:core-testing:${Versions.roomVersion}" + val supportRunner = "com.android.support.test:runner:${Versions.androidSupportRunnerVersion}" + val supportRules = "com.android.support.test:rules:${Versions.androidSupportRulesVersion}" +} + + +object remoteDependencies { + val daggerCompiler = "com.google.dagger:dagger-compiler:${Versions.daggerVersion}" + val dagger = "com.google.dagger:dagger:${Versions.daggerVersion}" + val gson = "com.google.code.gson:gson:${Versions.gsonVersion}" + val rxKotlin = "io.reactivex.rxjava2:rxkotlin:${Versions.rxKotlinVersion}" + val kotlin = "org.jetbrains.kotlin:kotlin-stdlib-jre8:${Versions.kotlinVersion}" + val javaxAnnotation = "javax.annotation:jsr250-api:${Versions.javaxAnnotationVersion}" + val javaxInject = "javax.inject:javax.inject:${Versions.javaxInjectVersion}" + val androidAnnotations = "com.android.support:support-annotations:${Versions.androidAnnotationsVersion}" + val okHttp = "com.squareup.okhttp3:okhttp:${Versions.okHttpVersion}" + val okHttpLogger = "com.squareup.okhttp3:logging-interceptor:${Versions.okHttpVersion}" + val retrofit = "com.squareup.retrofit2:retrofit:${Versions.retrofitVersion}" + val retrofitConverter = "com.squareup.retrofit2:converter-gson:${Versions.retrofitVersion}" + val retrofitAdapter = "com.squareup.retrofit2:adapter-rxjava2:${Versions.retrofitVersion}" +} + + +object remoteTestDependencies { + val junit = "junit:junit:${Versions.jUnitVersion}" + val kotlinJUnit = "org.jetbrains.kotlin:kotlin-test-junit:${Versions.kotlinVersion}" + val assertj = "org.assertj:assertj-core:${Versions.assertJVersion}" + val mockito = "com.nhaarman:mockito-kotlin:${Versions.mockitoKotlinVersion}" + val supportRunner = "com.android.support.test:runner:${Versions.androidSupportRunnerVersion}" + val supportRules = "com.android.support.test:rules:${Versions.androidSupportRulesVersion}" +} + + +object mobileUiDependencies { + val daggerCompiler = "com.google.dagger:dagger-compiler:${Versions.daggerVersion}" + val dagger = "com.google.dagger:dagger:${Versions.daggerVersion}" + val rxKotlin = "io.reactivex.rxjava2:rxkotlin:${Versions.rxKotlinVersion}" + val rxAndroid = "io.reactivex.rxjava2:rxandroid:${Versions.rxAndroidVersion}" + val glide = "com.github.bumptech.glide:glide:${Versions.glideVersion}" + val kotlin = "org.jetbrains.kotlin:kotlin-stdlib-jre8:${Versions.kotlinVersion}" + val javaxAnnotation = "javax.annotation:jsr250-api:${Versions.javaxAnnotationVersion}" + val javaxInject = "javax.inject:javax.inject:${Versions.javaxInjectVersion}" + val androidAnnotations = "com.android.support:support-annotations:${Versions.supportLibraryVersion}" + val androidSupportV4 = "com.android.support:support-v4:${Versions.supportLibraryVersion}" + val androidSupportV13 = "com.android.support:support-v13:${Versions.supportLibraryVersion}" + val appCompatV7 = "com.android.support:appcompat-v7:${Versions.supportLibraryVersion}" + val supportRecyclerView = "com.android.support:recyclerview-v7:${Versions.supportLibraryVersion}" + val supportDesign = "com.android.support:design:${Versions.supportLibraryVersion}" + val timber = "com.jakewharton.timber:timber:${Versions.timberVersion}" + val daggerSupport = "com.google.dagger:dagger-android-support:${Versions.daggerVersion}" + val daggerProcessor = "com.google.dagger:dagger-android-processor:${Versions.daggerVersion}" + val glassfishAnnotation = "org.glassfish:javax.annotation:${Versions.glassfishAnnotationVersion}" +} + +object mobileUiTestDependencies { + val junit = "junit:junit:${Versions.jUnitVersion}" + val kotlinJUnit = "org.jetbrains.kotlin:kotlin-test-junit:${Versions.kotlinVersion}" + val assertj = "org.assertj:assertj-core:${Versions.assertJVersion}" + val mockito = "com.nhaarman:mockito-kotlin:${Versions.mockitoKotlinVersion}" + val supportRunner = "com.android.support.test:runner:${Versions.androidSupportRunnerVersion}" + val supportRules = "com.android.support.test:rules:${Versions.androidSupportRulesVersion}" + val mockitoAndroid = "org.mockito:mockito-android:${Versions.mockitoAndroidVersion}" + val espressoCore = "com.android.support.test.espresso:espresso-core:${Versions.espressoVersion}" + val espressoIntents = "com.android.support.test.espresso:espresso-intents:${Versions.espressoVersion}" + val espressoContrib = "com.android.support.test.espresso:espresso-contrib:${Versions.espressoVersion}" + val androidRunner = "com.android.support.test:runner:${Versions.runnerVersion}" + val androidRules = "com.android.support.test:rules:${Versions.runnerVersion}" +} diff --git a/dependencies.gradle b/dependencies.gradle index a2f378a..f0d18d7 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -7,7 +7,7 @@ allprojects { ext { //Android - androidBuildToolsVersion = "26.0.0" + androidBuildToolsVersion = "27.0.0" androidMinSdkVersion = 15 androidTargetSdkVersion = 26 androidCompileSdkVersion = 26 @@ -47,7 +47,7 @@ ext { dexmakerMockitoversion = '2.2.0' runnerVersion = '0.5' - domainDependencies = [ + domainDependencies = [ javaxAnnotation: "javax.annotation:jsr250-api:${javaxAnnotationVersion}", javaxInject: "javax.inject:javax.inject:${javaxInjectVersion}", rxKotlin: "io.reactivex.rxjava2:rxkotlin:${rxKotlinVersion}", From 573b774abdf68d1d7189451fc8061eed8f4e37e8 Mon Sep 17 00:00:00 2001 From: Aditya Ladwa Date: Tue, 13 Feb 2018 15:10:39 +0530 Subject: [PATCH 2/2] Build : Using dependencies from Dependencies kotlin file Removed dependencies.gradle --- build.gradle | 5 +- buildSrc/src/main/java/Dependencies.kt | 26 ++-- cache/build.gradle | 34 ++--- data/build.gradle | 19 ++- dependencies.gradle | 200 ------------------------- domain/build.gradle | 16 +- mobile-ui/build.gradle | 75 +++++----- presentation/build.gradle | 19 +-- remote/build.gradle | 30 ++-- 9 files changed, 105 insertions(+), 319 deletions(-) delete mode 100644 dependencies.gradle diff --git a/build.gradle b/build.gradle index 818ee60..fe2fd83 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.1.3-2' + ext.kotlin_version = '1.2.21' repositories { google() jcenter() @@ -9,7 +9,7 @@ buildscript { dependencies { classpath 'com.android.tools.build:gradle:3.0.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - classpath "com.dicedmelon.gradle:jacoco-android:0.1.1" + classpath "com.dicedmelon.gradle:jacoco-android:0.1.2" // NOTE: Do not place your application dependencies here; they belong @@ -17,7 +17,6 @@ buildscript { } } -apply from: 'dependencies.gradle' allprojects { repositories { diff --git a/buildSrc/src/main/java/Dependencies.kt b/buildSrc/src/main/java/Dependencies.kt index cf48c27..4dcd378 100644 --- a/buildSrc/src/main/java/Dependencies.kt +++ b/buildSrc/src/main/java/Dependencies.kt @@ -6,7 +6,7 @@ object Versions { const val androidCompileSdkVersion = 26 //Libraries - const val kotlinVersion = "1.1.3-2" + const val kotlinVersion = "1.2.21" const val butterKnifeVersion = "7.0.1" const val recyclerViewVersion = "21.0.3" const val rxJavaVersion = "2.0.2" @@ -42,21 +42,21 @@ object Versions { } -object domainDependencies { +object DomainDependencies { val javaxAnnotation = "javax.annotation:jsr250-api:${Versions.javaxAnnotationVersion}" val javaxInject = "javax.inject:javax.inject:${Versions.javaxInjectVersion}" val rxKotlin = "io.reactivex.rxjava2:rxkotlin:${Versions.rxKotlinVersion}" val kotlin = "org.jetbrains.kotlin:kotlin-stdlib-jre8:${Versions.kotlinVersion}" } -object domainTest { +object DomainTestDependencies { val junit = "junit:junit:${Versions.jUnitVersion}" val mockito = "com.nhaarman:mockito-kotlin:${Versions.mockitoKotlinVersion}" val assertj = "org.assertj:assertj-core:${Versions.assertJVersion}" } -object presentationDependencies { +object PresentationDependencies { val daggerCompiler = "com.google.dagger:dagger-compiler:${Versions.daggerVersion}" val dagger = "com.google.dagger:dagger:${Versions.daggerVersion}" val okHttp = "com.squareup.okhttp3:okhttp:${Versions.okHttpVersion}" @@ -74,7 +74,7 @@ object presentationDependencies { } -object presentationTestDependencies { +object PresentationTestDependencies { val junit = "junit:junit:${Versions.jUnitVersion}" val kotlinJUnit = "org.jetbrains.kotlin:kotlin-test-junit:${Versions.kotlinVersion}" val assertj = "org.assertj:assertj-core:${Versions.assertJVersion}" @@ -82,7 +82,7 @@ object presentationTestDependencies { val robolectric = "org.robolectric:robolectric:${Versions.robolectricVersion}" } -object dataDependencies { +object DataDependencies { val daggerCompiler = "com.google.dagger:dagger-compiler:${Versions.daggerVersion}" val dagger = "com.google.dagger:dagger:${Versions.daggerVersion}" val okHttp = "com.squareup.okhttp3:okhttp:${Versions.okHttpVersion}" @@ -100,7 +100,7 @@ object dataDependencies { } -object dataTestDependencies { +object DataTestDependencies { val junit = "junit:junit:${Versions.jUnitVersion}" val kotlinJUnit = "org.jetbrains.kotlin:kotlin-test-junit:${Versions.kotlinVersion}" val assertj = "org.assertj:assertj-core:${Versions.assertJVersion}" @@ -108,7 +108,7 @@ object dataTestDependencies { val robolectric = "org.robolectric:robolectric:${Versions.robolectricVersion}" } -object cacheDependencies { +object CacheDependencies { val daggerCompiler = "com.google.dagger:dagger-compiler:${Versions.daggerVersion}" val dagger = "com.google.dagger:dagger:${Versions.daggerVersion}" val gson = "com.google.code.gson:gson:${Versions.gsonVersion}" @@ -123,7 +123,7 @@ object cacheDependencies { } -object cacheTestDependencies { +object CacheTestDependencies { val junit = "junit:junit:${Versions.jUnitVersion}" val kotlinJUnit = "org.jetbrains.kotlin:kotlin-test-junit:${Versions.kotlinVersion}" val assertj = "org.assertj:assertj-core:${Versions.assertJVersion}" @@ -136,7 +136,7 @@ object cacheTestDependencies { } -object remoteDependencies { +object RemoteDependencies { val daggerCompiler = "com.google.dagger:dagger-compiler:${Versions.daggerVersion}" val dagger = "com.google.dagger:dagger:${Versions.daggerVersion}" val gson = "com.google.code.gson:gson:${Versions.gsonVersion}" @@ -153,7 +153,7 @@ object remoteDependencies { } -object remoteTestDependencies { +object RemoteTestDependencies { val junit = "junit:junit:${Versions.jUnitVersion}" val kotlinJUnit = "org.jetbrains.kotlin:kotlin-test-junit:${Versions.kotlinVersion}" val assertj = "org.assertj:assertj-core:${Versions.assertJVersion}" @@ -163,7 +163,7 @@ object remoteTestDependencies { } -object mobileUiDependencies { +object MobileUiDependencies { val daggerCompiler = "com.google.dagger:dagger-compiler:${Versions.daggerVersion}" val dagger = "com.google.dagger:dagger:${Versions.daggerVersion}" val rxKotlin = "io.reactivex.rxjava2:rxkotlin:${Versions.rxKotlinVersion}" @@ -184,7 +184,7 @@ object mobileUiDependencies { val glassfishAnnotation = "org.glassfish:javax.annotation:${Versions.glassfishAnnotationVersion}" } -object mobileUiTestDependencies { +object MobileUiTestDependencies { val junit = "junit:junit:${Versions.jUnitVersion}" val kotlinJUnit = "org.jetbrains.kotlin:kotlin-test-junit:${Versions.kotlinVersion}" val assertj = "org.assertj:assertj-core:${Versions.assertJVersion}" diff --git a/cache/build.gradle b/cache/build.gradle index 2bf9c33..3c3b24c 100644 --- a/cache/build.gradle +++ b/cache/build.gradle @@ -2,14 +2,13 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' android { - def globalConfiguration = rootProject.extensions.getByName("ext") - compileSdkVersion globalConfiguration["androidCompileSdkVersion"] - buildToolsVersion globalConfiguration["androidBuildToolsVersion"] + compileSdkVersion Versions.androidCompileSdkVersion + buildToolsVersion Versions.androidBuildToolsVersion defaultConfig { - minSdkVersion globalConfiguration["androidMinSdkVersion"] - targetSdkVersion globalConfiguration["androidTargetSdkVersion"] + minSdkVersion Versions.androidMinSdkVersion + targetSdkVersion Versions.androidTargetSdkVersion multiDexEnabled = true } @@ -37,7 +36,8 @@ android { abortOnError false ignoreWarnings true disable 'InvalidPackage' //Some libraries have issues with this. - disable 'OldTargetApi' //Lint gives this warning but SDK 20 would be Android L Beta. + disable 'OldTargetApi' + //Lint gives this warning but SDK 20 would be Android L Beta. disable 'IconDensities' //For testing purpose. This is safe to remove. disable 'IconMissingDensityFolder' //For testing purpose. This is safe to remove. } @@ -45,21 +45,19 @@ android { } dependencies { - def cacheDependencies = rootProject.ext.cacheDependencies - def cacheTestDependencies = rootProject.ext.cacheTestDependencies - compileOnly cacheDependencies.javaxAnnotation + compileOnly CacheDependencies.javaxAnnotation implementation project(':data') - implementation cacheDependencies.kotlin - implementation cacheDependencies.javaxInject - implementation cacheDependencies.rxKotlin - implementation cacheDependencies.gson + implementation CacheDependencies.kotlin + implementation CacheDependencies.javaxInject + implementation CacheDependencies.rxKotlin + implementation CacheDependencies.gson - testImplementation cacheTestDependencies.junit - testImplementation cacheTestDependencies.kotlinJUnit - testImplementation cacheTestDependencies.mockito - testImplementation cacheTestDependencies.assertj - testImplementation cacheTestDependencies.robolectric + testImplementation CacheTestDependencies.junit + testImplementation CacheTestDependencies.kotlinJUnit + testImplementation CacheTestDependencies.mockito + testImplementation CacheTestDependencies.assertj + testImplementation CacheTestDependencies.robolectric } \ No newline at end of file diff --git a/data/build.gradle b/data/build.gradle index da757a9..4b3946c 100644 --- a/data/build.gradle +++ b/data/build.gradle @@ -4,19 +4,18 @@ sourceCompatibility = 1.7 targetCompatibility = 1.7 dependencies { - def dataDependencies = rootProject.ext.dataDependencies - def dataTestDependencies = rootProject.ext.dataTestDependencies compile project(':domain') - compile dataDependencies.javaxAnnotation + compile DataDependencies.javaxAnnotation + compile DataDependencies.javaxAnnotation - implementation dataDependencies.kotlin - implementation dataDependencies.javaxInject - implementation dataDependencies.rxKotlin + implementation DataDependencies.kotlin + implementation DataDependencies.javaxInject + implementation DataDependencies.rxKotlin - testImplementation dataTestDependencies.junit - testImplementation dataTestDependencies.kotlinJUnit - testImplementation dataTestDependencies.mockito - testImplementation dataTestDependencies.assertj + testImplementation DataTestDependencies.junit + testImplementation DataTestDependencies.kotlinJUnit + testImplementation DataTestDependencies.mockito + testImplementation DataTestDependencies.assertj } \ No newline at end of file diff --git a/dependencies.gradle b/dependencies.gradle deleted file mode 100644 index f0d18d7..0000000 --- a/dependencies.gradle +++ /dev/null @@ -1,200 +0,0 @@ - -allprojects { - repositories { - jcenter() - } -} - -ext { - //Android - androidBuildToolsVersion = "27.0.0" - androidMinSdkVersion = 15 - androidTargetSdkVersion = 26 - androidCompileSdkVersion = 26 - - //Libraries - kotlinVersion = '1.1.3-2' - butterKnifeVersion = '7.0.1' - recyclerViewVersion = '21.0.3' - rxJavaVersion = '2.0.2' - rxKotlinVersion = '2.1.0' - rxAndroidVersion = '2.0.1' - javaxAnnotationVersion = '1.0' - javaxInjectVersion = '1' - gsonVersion = '2.8.1' - okHttpVersion = '3.8.1' - androidAnnotationsVersion = '21.0.3' - retrofitVersion = '2.3.0' - roomVersion = '1.0.0-alpha6' - supportLibraryVersion = '26.0.1' - timberVersion = '4.5.1' - glideVersion = '4.0.0' - daggerVersion = '2.11' - glassfishAnnotationVersion = '10.0-b28' - - //Testing - robolectricVersion = '3.4.2' - jUnitVersion = '4.12' - assertJVersion = '3.8.0' - mockitoVersion = '1.9.5' - dexmakerVersion = '1.0' - espressoVersion = '3.0.0' - testingSupportLibVersion = '0.1' - mockitoKotlinVersion = '1.5.0' - mockitoAndroidVersion = '2.8.47' - androidSupportRunnerVersion = '1.0.0' - androidSupportRulesVersion = '1.0.0' - dexmakerMockitoversion = '2.2.0' - runnerVersion = '0.5' - - domainDependencies = [ - javaxAnnotation: "javax.annotation:jsr250-api:${javaxAnnotationVersion}", - javaxInject: "javax.inject:javax.inject:${javaxInjectVersion}", - rxKotlin: "io.reactivex.rxjava2:rxkotlin:${rxKotlinVersion}", - kotlin: "org.jetbrains.kotlin:kotlin-stdlib-jre8:${kotlinVersion}" - ] - - domainTestDependencies = [ - junit: "junit:junit:${jUnitVersion}", - mockito: "com.nhaarman:mockito-kotlin:${mockitoKotlinVersion}", - assertj: "org.assertj:assertj-core:${assertJVersion}" - ] - - presentationDependencies = [ - daggerCompiler: "com.google.dagger:dagger-compiler:${daggerVersion}", - dagger: "com.google.dagger:dagger:${daggerVersion}", - okHttp: "com.squareup.okhttp3:okhttp:${okHttpVersion}", - okHttpLogger: "com.squareup.okhttp3:logging-interceptor:${okHttpVersion}", - gson: "com.google.code.gson:gson:${gsonVersion}", - rxKotlin: "io.reactivex.rxjava2:rxkotlin:${rxKotlinVersion}", - kotlin: "org.jetbrains.kotlin:kotlin-stdlib-jre8:${kotlinVersion}", - rxAndroid: "io.reactivex.rxjava2:rxandroid:${rxAndroidVersion}", - javaxAnnotation: "javax.annotation:jsr250-api:${javaxAnnotationVersion}", - javaxInject: "javax.inject:javax.inject:${javaxInjectVersion}", - androidAnnotations: "com.android.support:support-annotations:${androidAnnotationsVersion}", - retrofit: "com.squareup.retrofit2:retrofit:${retrofitVersion}", - retrofitConverter: "com.squareup.retrofit2:converter-gson:${retrofitVersion}", - retrofitAdapter: "com.squareup.retrofit2:adapter-rxjava2:${retrofitVersion}" - ] - - presentationTestDependencies = [ - junit: "junit:junit:${jUnitVersion}", - kotlinJUnit: "org.jetbrains.kotlin:kotlin-test-junit:${kotlin_version}", - assertj: "org.assertj:assertj-core:${assertJVersion}", - mockito: "com.nhaarman:mockito-kotlin:${mockitoKotlinVersion}", - robolectric: "org.robolectric:robolectric:${robolectricVersion}" - ] - - dataDependencies = [ - daggerCompiler: "com.google.dagger:dagger-compiler:${daggerVersion}", - dagger: "com.google.dagger:dagger:${daggerVersion}", - okHttp: "com.squareup.okhttp3:okhttp:${okHttpVersion}", - okHttpLogger: "com.squareup.okhttp3:logging-interceptor:${okHttpVersion}", - gson: "com.google.code.gson:gson:${gsonVersion}", - rxKotlin: "io.reactivex.rxjava2:rxkotlin:${rxKotlinVersion}", - kotlin: "org.jetbrains.kotlin:kotlin-stdlib-jre8:${kotlinVersion}", - rxAndroid: "io.reactivex.rxjava2:rxandroid:${rxAndroidVersion}", - javaxAnnotation: "javax.annotation:jsr250-api:${javaxAnnotationVersion}", - javaxInject: "javax.inject:javax.inject:${javaxInjectVersion}", - androidAnnotations: "com.android.support:support-annotations:${androidAnnotationsVersion}", - retrofit: "com.squareup.retrofit2:retrofit:${retrofitVersion}", - retrofitConverter: "com.squareup.retrofit2:converter-gson:${retrofitVersion}", - retrofitAdapter: "com.squareup.retrofit2:adapter-rxjava2:${retrofitVersion}" - ] - - dataTestDependencies = [ - junit: "junit:junit:${jUnitVersion}", - kotlinJUnit: "org.jetbrains.kotlin:kotlin-test-junit:${kotlin_version}", - assertj: "org.assertj:assertj-core:${assertJVersion}", - mockito: "com.nhaarman:mockito-kotlin:${mockitoKotlinVersion}", - robolectric: "org.robolectric:robolectric:${robolectricVersion}" - ] - - cacheDependencies = [ - daggerCompiler: "com.google.dagger:dagger-compiler:${daggerVersion}", - dagger: "com.google.dagger:dagger:${daggerVersion}", - gson: "com.google.code.gson:gson:${gsonVersion}", - rxKotlin: "io.reactivex.rxjava2:rxkotlin:${rxKotlinVersion}", - kotlin: "org.jetbrains.kotlin:kotlin-stdlib-jre8:${kotlinVersion}", - javaxAnnotation: "javax.annotation:jsr250-api:${javaxAnnotationVersion}", - javaxInject: "javax.inject:javax.inject:${javaxInjectVersion}", - androidAnnotations: "com.android.support:support-annotations:${androidAnnotationsVersion}", - roomRuntime: "android.arch.persistence.room:runtime:${roomVersion}", - roomCompiler: "android.arch.persistence.room:compiler:${roomVersion}", - roomRxJava: "android.arch.persistence.room:rxjava2:${roomVersion}", - ] - - cacheTestDependencies = [ - junit: "junit:junit:${jUnitVersion}", - kotlinJUnit: "org.jetbrains.kotlin:kotlin-test-junit:${kotlin_version}", - assertj: "org.assertj:assertj-core:${assertJVersion}", - mockito: "com.nhaarman:mockito-kotlin:${mockitoKotlinVersion}", - robolectric: "org.robolectric:robolectric:${robolectricVersion}", - roomTesting: "android.arch.persistence.room:testing:${roomVersion}", - archTesting: "android.arch.core:core-testing:${roomVersion}", - supportRunner: "com.android.support.test:runner:${androidSupportRunnerVersion}", - supportRules: "com.android.support.test:rules:${androidSupportRulesVersion}" - ] - - remoteDependencies = [ - daggerCompiler: "com.google.dagger:dagger-compiler:${daggerVersion}", - dagger: "com.google.dagger:dagger:${daggerVersion}", - gson: "com.google.code.gson:gson:${gsonVersion}", - rxKotlin: "io.reactivex.rxjava2:rxkotlin:${rxKotlinVersion}", - kotlin: "org.jetbrains.kotlin:kotlin-stdlib-jre8:${kotlinVersion}", - javaxAnnotation: "javax.annotation:jsr250-api:${javaxAnnotationVersion}", - javaxInject: "javax.inject:javax.inject:${javaxInjectVersion}", - androidAnnotations: "com.android.support:support-annotations:${androidAnnotationsVersion}", - okHttp: "com.squareup.okhttp3:okhttp:${okHttpVersion}", - okHttpLogger: "com.squareup.okhttp3:logging-interceptor:${okHttpVersion}", - retrofit: "com.squareup.retrofit2:retrofit:${retrofitVersion}", - retrofitConverter: "com.squareup.retrofit2:converter-gson:${retrofitVersion}", - retrofitAdapter: "com.squareup.retrofit2:adapter-rxjava2:${retrofitVersion}" - ] - - remoteTestDependencies = [ - junit: "junit:junit:${jUnitVersion}", - kotlinJUnit: "org.jetbrains.kotlin:kotlin-test-junit:${kotlin_version}", - assertj: "org.assertj:assertj-core:${assertJVersion}", - mockito: "com.nhaarman:mockito-kotlin:${mockitoKotlinVersion}", - supportRunner: "com.android.support.test:runner:${androidSupportRunnerVersion}", - supportRules: "com.android.support.test:rules:${androidSupportRulesVersion}" - ] - - mobileUiDependencies = [ - daggerCompiler: "com.google.dagger:dagger-compiler:${daggerVersion}", - dagger: "com.google.dagger:dagger:${daggerVersion}", - rxKotlin: "io.reactivex.rxjava2:rxkotlin:${rxKotlinVersion}", - rxAndroid: "io.reactivex.rxjava2:rxandroid:${rxAndroidVersion}", - glide: "com.github.bumptech.glide:glide:${glideVersion}", - kotlin: "org.jetbrains.kotlin:kotlin-stdlib-jre8:${kotlinVersion}", - javaxAnnotation: "javax.annotation:jsr250-api:${javaxAnnotationVersion}", - javaxInject: "javax.inject:javax.inject:${javaxInjectVersion}", - androidAnnotations: "com.android.support:support-annotations:${supportLibraryVersion}", - androidSupportV4: "com.android.support:support-v4:${supportLibraryVersion}", - androidSupportV13: "com.android.support:support-v13:${supportLibraryVersion}", - appCompatV7: "com.android.support:appcompat-v7:${supportLibraryVersion}", - supportRecyclerView:"com.android.support:recyclerview-v7:${supportLibraryVersion}", - supportDesign: "com.android.support:design:${supportLibraryVersion}", - timber: "com.jakewharton.timber:timber:${timberVersion}", - daggerSupport: "com.google.dagger:dagger-android-support:${daggerVersion}", - daggerProcessor: "com.google.dagger:dagger-android-processor:${daggerVersion}", - glassfishAnnotation: "org.glassfish:javax.annotation:${glassfishAnnotationVersion}" - ] - - mobileUiTestDependencies = [ - junit: "junit:junit:${jUnitVersion}", - kotlinJUnit: "org.jetbrains.kotlin:kotlin-test-junit:${kotlin_version}", - assertj: "org.assertj:assertj-core:${assertJVersion}", - mockito: "com.nhaarman:mockito-kotlin:${mockitoKotlinVersion}", - supportRunner: "com.android.support.test:runner:${androidSupportRunnerVersion}", - supportRules: "com.android.support.test:rules:${androidSupportRulesVersion}", - mockitoAndroid: "org.mockito:mockito-android:${mockitoAndroidVersion}", - espressoCore: "com.android.support.test.espresso:espresso-core:${espressoVersion}", - espressoIntents: "com.android.support.test.espresso:espresso-intents:${espressoVersion}", - espressoContrib: "com.android.support.test.espresso:espresso-contrib:${espressoVersion}", - androidRunner: "com.android.support.test:runner:${runnerVersion}", - androidRules: "com.android.support.test:rules:${runnerVersion}" - ] - -} \ No newline at end of file diff --git a/domain/build.gradle b/domain/build.gradle index e11d474..821492c 100644 --- a/domain/build.gradle +++ b/domain/build.gradle @@ -10,16 +10,14 @@ configurations.all { } dependencies { - def domainDependencies = rootProject.ext.domainDependencies - def domainTestDependencies = rootProject.ext.domainTestDependencies - implementation domainDependencies.javaxAnnotation - implementation domainDependencies.javaxInject - implementation domainDependencies.rxKotlin - implementation domainDependencies.kotlin + implementation DomainDependencies.javaxAnnotation + implementation DomainDependencies.javaxInject + implementation DomainDependencies.rxKotlin + implementation DomainDependencies.kotlin - testImplementation domainTestDependencies.junit - testImplementation domainTestDependencies.mockito - testImplementation domainTestDependencies.assertj + testImplementation DomainTestDependencies.junit + testImplementation DomainTestDependencies.mockito + testImplementation DomainTestDependencies.assertj } \ No newline at end of file diff --git a/mobile-ui/build.gradle b/mobile-ui/build.gradle index 582ac36..9bd81c6 100644 --- a/mobile-ui/build.gradle +++ b/mobile-ui/build.gradle @@ -5,14 +5,13 @@ apply plugin: 'kotlin-kapt' apply plugin: 'jacoco-android' android { - def globalConfiguration = rootProject.extensions.getByName("ext") - compileSdkVersion globalConfiguration["androidCompileSdkVersion"] - buildToolsVersion globalConfiguration["androidBuildToolsVersion"] + compileSdkVersion Versions.androidCompileSdkVersion + buildToolsVersion Versions.androidBuildToolsVersion defaultConfig { - minSdkVersion globalConfiguration["androidMinSdkVersion"] - targetSdkVersion globalConfiguration["androidTargetSdkVersion"] + minSdkVersion Versions.androidMinSdkVersion + targetSdkVersion Versions.androidTargetSdkVersion multiDexEnabled = true testInstrumentationRunner "org.buffer.android.boilerplate.ui.test.TestRunner" } @@ -61,54 +60,52 @@ configurations.all { } dependencies { - def mobileUiDependencies = rootProject.ext.mobileUiDependencies - def mobileUiTestDependencies = rootProject.ext.mobileUiTestDependencies implementation project(':presentation') implementation project(':data') implementation project(':cache') implementation project(':remote') - implementation mobileUiDependencies.javaxAnnotation - - implementation mobileUiDependencies.kotlin - implementation mobileUiDependencies.javaxInject - implementation mobileUiDependencies.rxKotlin - implementation mobileUiDependencies.androidAnnotations - implementation mobileUiDependencies.androidSupportV4 - implementation mobileUiDependencies.androidSupportV13 - implementation mobileUiDependencies.appCompatV7 - implementation mobileUiDependencies.supportRecyclerView - implementation mobileUiDependencies.supportDesign - implementation mobileUiDependencies.timber - implementation mobileUiDependencies.rxAndroid - implementation mobileUiDependencies.glide - implementation mobileUiDependencies.dagger - implementation mobileUiDependencies.daggerSupport - - testImplementation mobileUiTestDependencies.kotlinJUnit - - kapt mobileUiDependencies.daggerCompiler - kapt mobileUiDependencies.daggerProcessor - compileOnly mobileUiDependencies.glassfishAnnotation + implementation MobileUiDependencies.javaxAnnotation + + implementation MobileUiDependencies.kotlin + implementation MobileUiDependencies.javaxInject + implementation MobileUiDependencies.rxKotlin + implementation MobileUiDependencies.androidAnnotations + implementation MobileUiDependencies.androidSupportV4 + implementation MobileUiDependencies.androidSupportV13 + implementation MobileUiDependencies.appCompatV7 + implementation MobileUiDependencies.supportRecyclerView + implementation MobileUiDependencies.supportDesign + implementation MobileUiDependencies.timber + implementation MobileUiDependencies.rxAndroid + implementation MobileUiDependencies.glide + implementation MobileUiDependencies.dagger + implementation MobileUiDependencies.daggerSupport + + testImplementation MobileUiTestDependencies.kotlinJUnit + + kapt MobileUiDependencies.daggerCompiler + kapt MobileUiDependencies.daggerProcessor + compileOnly MobileUiDependencies.glassfishAnnotation // Instrumentation test dependencies - androidTestImplementation mobileUiTestDependencies.junit - androidTestImplementation mobileUiTestDependencies.mockito - androidTestImplementation mobileUiTestDependencies.mockitoAndroid - androidTestImplementation (mobileUiTestDependencies.espressoCore) { + androidTestImplementation MobileUiTestDependencies.junit + androidTestImplementation MobileUiTestDependencies.mockito + androidTestImplementation MobileUiTestDependencies.mockitoAndroid + androidTestImplementation (MobileUiTestDependencies.espressoCore) { exclude group: 'com.android.support', module: 'support-annotations' } - androidTestImplementation (mobileUiTestDependencies.androidRunner) { + androidTestImplementation (MobileUiTestDependencies.androidRunner) { exclude group: 'com.android.support', module: 'support-annotations' } - androidTestImplementation (mobileUiTestDependencies.androidRules) { + androidTestImplementation (MobileUiTestDependencies.androidRules) { exclude group: 'com.android.support', module: 'support-annotations' } - androidTestImplementation (mobileUiTestDependencies.espressoIntents) { + androidTestImplementation (MobileUiTestDependencies.espressoIntents) { exclude group: 'com.android.support', module: 'support-annotations' } - androidTestImplementation(mobileUiTestDependencies.espressoContrib) { + androidTestImplementation(MobileUiTestDependencies.espressoContrib) { exclude module: 'appcompat' exclude module: 'appcompat-v7' exclude module: 'support-v4' @@ -118,6 +115,6 @@ dependencies { exclude module: 'design' } - kaptTest mobileUiDependencies.daggerCompiler - kaptAndroidTest mobileUiDependencies.daggerCompiler + kaptTest MobileUiDependencies.daggerCompiler + kaptAndroidTest MobileUiDependencies.daggerCompiler } diff --git a/presentation/build.gradle b/presentation/build.gradle index 2d908d0..67f7fcd 100644 --- a/presentation/build.gradle +++ b/presentation/build.gradle @@ -10,19 +10,16 @@ configurations.all { } dependencies { - def presentationDependencies = rootProject.ext.cacheDependencies - def presentationTestDependencies = rootProject.ext.cacheTestDependencies + compile PresentationDependencies.javaxAnnotation - compile presentationDependencies.javaxAnnotation + implementation PresentationDependencies.kotlin + implementation PresentationDependencies.javaxInject + implementation PresentationDependencies.rxKotlin - implementation presentationDependencies.kotlin - implementation presentationDependencies.javaxInject - implementation presentationDependencies.rxKotlin - - testImplementation presentationTestDependencies.junit - testImplementation presentationTestDependencies.mockito - testImplementation presentationTestDependencies.assertj - testImplementation presentationTestDependencies.robolectric + testImplementation PresentationTestDependencies.junit + testImplementation PresentationTestDependencies.mockito + testImplementation PresentationTestDependencies.assertj + testImplementation PresentationTestDependencies.robolectric compile project(':domain') } \ No newline at end of file diff --git a/remote/build.gradle b/remote/build.gradle index 9e98056..7e5a3cc 100644 --- a/remote/build.gradle +++ b/remote/build.gradle @@ -4,25 +4,23 @@ sourceCompatibility = 1.7 targetCompatibility = 1.7 dependencies { - def remoteDependencies = rootProject.ext.remoteDependencies - def remoteTestDependencies = rootProject.ext.remoteTestDependencies - implementation remoteDependencies.javaxAnnotation + implementation RemoteDependencies.javaxAnnotation - implementation remoteDependencies.kotlin - implementation remoteDependencies.javaxInject - implementation remoteDependencies.rxKotlin - implementation remoteDependencies.gson - implementation remoteDependencies.okHttp - implementation remoteDependencies.okHttpLogger - implementation remoteDependencies.retrofit - implementation remoteDependencies.retrofitConverter - implementation remoteDependencies.retrofitAdapter + implementation RemoteDependencies.kotlin + implementation RemoteDependencies.javaxInject + implementation RemoteDependencies.rxKotlin + implementation RemoteDependencies.gson + implementation RemoteDependencies.okHttp + implementation RemoteDependencies.okHttpLogger + implementation RemoteDependencies.retrofit + implementation RemoteDependencies.retrofitConverter + implementation RemoteDependencies.retrofitAdapter - testImplementation remoteTestDependencies.junit - testImplementation remoteTestDependencies.kotlinJUnit - testImplementation remoteTestDependencies.mockito - testImplementation remoteTestDependencies.assertj + testImplementation RemoteTestDependencies.junit + testImplementation RemoteTestDependencies.kotlinJUnit + testImplementation RemoteTestDependencies.mockito + testImplementation RemoteTestDependencies.assertj compile project(':data') } \ No newline at end of file