From dbc6c5a10b11aa14acc6b7d85ebfbe14375c52da Mon Sep 17 00:00:00 2001 From: Carlos Martinez Date: Tue, 15 Jun 2021 20:42:53 -0400 Subject: [PATCH] Add: new gradle dependency versioning file and cleanup project buildgradle --- build.gradle | 24 ++++------ versions.gradle | 114 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 123 insertions(+), 15 deletions(-) create mode 100644 versions.gradle diff --git a/build.gradle b/build.gradle index 41df201..297bbc0 100644 --- a/build.gradle +++ b/build.gradle @@ -1,25 +1,19 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = "1.5.10" - repositories { - google() - mavenCentral() - } - dependencies { - classpath "com.android.tools.build:gradle:4.2.1" - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + apply from: 'versions.gradle' - // NOTE: Do not place your application dependencies here; they belong - // in the individual module build.gradle files + addRepos(repositories) + + dependencies { + classpath deps.project.kotlin + classpath deps.project.gradle } + + ext.kotlin_version = build_versions.kotlin } allprojects { - repositories { - google() - mavenCentral() - jcenter() // Warning: this repository is going to shut down soon - } + addRepos(repositories) } task clean(type: Delete) { diff --git a/versions.gradle b/versions.gradle new file mode 100644 index 0000000..c98d94c --- /dev/null +++ b/versions.gradle @@ -0,0 +1,114 @@ +ext.deps = [:] + +def versions = [:] +versions.kotlin = "1.5.10" +versions.gradle = "4.2.1" +versions.room = "2.3.0" +versions.androidx_appcompat = "1.3.0" +versions.androidx_core = "1.3.2" +versions.androidx_constraint_layout = "2.0.4" +versions.androidx_lifecycle = "2.2.0" +versions.androidx_recycler_view = "1.2.0" +versions.androidx_navigation = "2.3.5" +versions.okhttp_logging_interceptor = "4.9.1" +versions.retrofit = "2.9.0" +versions.timber = "4.7.1" +versions.koin = "2.2.2" +versions.rx_core = "2.2.21" +versions.rx_android = "2.1.1" +versions.junit = "4.13.2" +versions.test = "1.3.0" +versions.test_ext = "1.1.2" +versions.espresso = "3.3.0" +versions.lottie = "3.7.0" +versions.picasso = "2.71828" + +def build_versions = [:] +build_versions.min_sdk = 21 +build_versions.target_sdk = 30 +build_versions.build_tools = "30.0.3" +build_versions.kotlin = "$versions.kotlin" +ext.build_versions = build_versions + +def deps = [:] + +def project = [:] +project.kotlin = "org.jetbrains.kotlin:kotlin-gradle-plugin:$versions.kotlin" +project.gradle = "com.android.tools.build:gradle:$versions.gradle" +deps.project = project + +def kotlin = [:] +kotlin.version = "$versions.kotlin" +kotlin.std_lib = "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$versions.kotlin" + +def androidx = [:] +androidx.appcompat = "androidx.appcompat:appcompat:$versions.androidx_appcompat" +androidx.core_ktx = "androidx.core:core-ktx:$versions.androidx_core" +androidx.constraint_layout = "androidx.constraintlayout:constraintlayout:$versions.androidx_constraint_layout" +androidx.lifecycle_ext = "androidx.lifecycle:lifecycle-extensions:$versions.androidx_lifecycle" +androidx.lifecycle_viewmodel = "androidx.lifecycle:lifecycle-viewmodel-ktx:$versions.androidx_lifecycle" +androidx.recycler_view = "androidx.recyclerview:recyclerview:$versions.androidx_recycler_view" +androidx.navigation_fragment = "androidx.navigation:navigation-fragment-ktx:$versions.androidx_navigation" +androidx.navigation_ui = "androidx.navigation:navigation-ui-ktx:$versions.androidx_navigation" + +def google = [:] +google.kotlin = kotlin +google.androidx = androidx +deps.google = google + +def room = [:] +room.runtime = "androidx.room:room-runtime:$versions.room" +room.compiler = "androidx.room:room-compiler:$versions.room" + +def koin = [:] +koin.core = "org.koin:koin-android:$versions.koin" +koin.scope = "org.koin:koin-androidx-scope:$versions.koin" +koin.viewmodel = "org.koin:koin-androidx-viewmodel:$versions.koin" + +def rx = [:] +rx.core = "io.reactivex.rxjava2:rxjava:$versions.rx_core" +rx.android = "io.reactivex.rxjava2:rxandroid:$versions.rx_android" +deps.rx = rx + +def okhttp = [:] +okhttp.logging_interceptor = "com.squareup.okhttp3:logging-interceptor:$versions.okhttp_interceptor" + +def retrofit = [:] +retrofit.runtime = "com.squareup.retrofit2:retrofit:$versions.retrofit" +retrofit.gson = "com.squareup.retrofit2:converter-gson:$versions.retrofit" +retrofit.mock = "com.squareup.retrofit2:retrofit-mock:$versions.retrofit" +retrofit.rx = "com.squareup.retrofit2:adapter-rxjava2:$versions.retrofit" + +def thirdparty = [:] +thirdparty.timber = "com.jakewharton.timber:timber:$versions.timber" +thirdparty.lottie = "com.airbnb.android:lottie:$versions.lottie" +thirdparty.picasso = "com.squareup.picasso:picasso:$versions.picasso" + +def core = [:] +core.room = room +core.koin = koin +core.rx = rx +core.okhttp = okhttp +core.retrofit = retrofit +core.thirdparty = thirdparty +deps.core = core + +def testing = [:] +testing.junit = "junit:junit:$versions.junit" +testing.core = "androidx.test:core:$versions.test" +testing.rules = "androidx.test:rules:$versions.test" +testing.runner = "androidx.test:runner:$versions.test" +testing.ext = "androidx.test.ext:junit:$versions.test_ext" +testing.koin = "org.koin:koin-test:$versions.koin" +testing.espresso = "androidx.test.espresso:espresso-core:$versions.espresso" +deps.testing = testing + +ext.deps = deps + +static def addRepos(RepositoryHandler handler) { + handler.google() + handler.jcenter() + handler.maven { url 'https://oss.sonatype.org/content/repositories/snapshots' } +} + +ext.addRepos = this.&addRepos