Skip to content

Commit

Permalink
Migrate to Gradle version catalog (#1033)
Browse files Browse the repository at this point in the history
  • Loading branch information
mikescamell authored Jun 12, 2023
1 parent 093fe2d commit 1b6eb17
Show file tree
Hide file tree
Showing 22 changed files with 371 additions and 214 deletions.
8 changes: 7 additions & 1 deletion api-tester/build.gradle
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
plugins {
alias libs.plugins.android.application
alias libs.plugins.kotlin.android
}

apply from: "$rootProject.projectDir/base-application.gradle"

android {
Expand All @@ -13,6 +18,7 @@ android {
dependencies {
implementation project(path: ':public')
implementation project(path: ':purchases')
implementation "androidx.annotation:annotation:$annotationVersion"
implementation project(path: ':feature:amazon')

implementation libs.androidx.annotation
}
4 changes: 0 additions & 4 deletions base-application.gradle
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-parcelize'

android {
compileSdkVersion compileVersion
buildToolsVersion buildToolsVersion
Expand Down
44 changes: 12 additions & 32 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,40 +1,24 @@
buildscript {
ext.kotlinVersion = "1.6.21"
ext.compileVersion = 31
ext.buildToolsVersion = "30.0.3"
ext.minVersion = 14
ext.billingVersion = "5.1.0"
ext.lifecycleVersion = "2.5.0"
ext.testLibrariesVersion = "1.4.0"
ext.testJUnitVersion = "1.1.3"
ext.robolectricVersion = "4.8.1"
ext.mockkVersion = "1.12.8"
ext.assertJVersion = "3.22.0"
ext.annotationVersion = "1.3.0"
ext.androidxCoreVersion = "1.8.0"
ext.mockwebserverVersion = "4.2.0"
ext.tinkVersion = "1.8.0"

repositories {
mavenCentral()
google()
}
dependencies {
classpath "com.vanniktech:gradle-maven-publish-plugin:0.22.0"
classpath 'com.android.tools.build:gradle:8.0.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
classpath "org.jetbrains.dokka:dokka-gradle-plugin:1.8.10"
classpath "org.jetbrains.kotlinx:kover:0.6.1"
}
}

plugins {
id "io.gitlab.arturbosch.detekt" version "1.17.0-RC3"
id "com.savvasdalkitsis.module-dependency-graph" version "0.9"
alias libs.plugins.android.application apply false
alias libs.plugins.android.library apply false
alias libs.plugins.androidx.navigation.safeargs apply false
alias libs.plugins.dependencyGraph
alias libs.plugins.detekt
alias libs.plugins.dokka
alias libs.plugins.kotlin.android apply false
alias libs.plugins.kotlin.kapt apply false
alias libs.plugins.kotlin.parcelize apply false
alias libs.plugins.kover
alias libs.plugins.mavenPublish apply false
}

dependencies {
detektPlugins "io.gitlab.arturbosch.detekt:detekt-formatting:1.20.0"
detektPlugins libs.detekt.formatting
}

allprojects {
Expand Down Expand Up @@ -82,15 +66,11 @@ task detektAllBaseline(type: io.gitlab.arturbosch.detekt.DetektCreateBaselineTas
exclude("**/test/**/*.kt")
}

apply plugin: 'org.jetbrains.dokka'

tasks.dokkaHtmlMultiModule.configure {
outputDirectory.set(file("docs/" + project.property("VERSION_NAME")))
includes.from("README.md")
}

apply plugin: 'kover'

koverMerged {
enable()
filters {
Expand Down
34 changes: 22 additions & 12 deletions common/build.gradle
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@
plugins {
alias libs.plugins.android.library
alias libs.plugins.kotlin.android
alias libs.plugins.kover
alias libs.plugins.mavenPublish
}

apply from: "$rootProject.projectDir/library.gradle"

android {
namespace 'com.revenuecat.purchases.common'

Expand All @@ -24,17 +32,19 @@ dependencies {
implementation project(":public")
implementation project(":utils")
implementation project(":strings")
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
implementation "androidx.core:core-ktx:$androidxCoreVersion"
implementation "com.google.crypto.tink:tink-android:$tinkVersion"
implementation "com.android.billingclient:billing:$billingVersion"

implementation libs.androidx.core
implementation libs.billing
implementation libs.kotlin.stdlib
implementation libs.tink

testImplementation project(":test-utils")
testImplementation "androidx.test:core:$testLibrariesVersion"
testImplementation "androidx.test:runner:$testLibrariesVersion"
testImplementation "androidx.test:rules:$testLibrariesVersion"
testImplementation "androidx.test.ext:junit:$testJUnitVersion"
testImplementation "org.robolectric:robolectric:$robolectricVersion"
testImplementation "io.mockk:mockk:$mockkVersion"
testImplementation "org.assertj:assertj-core:$assertJVersion"
testImplementation "com.squareup.okhttp3:mockwebserver:$mockwebserverVersion"
testImplementation libs.androidx.test.core
testImplementation libs.androidx.test.junit
testImplementation libs.androidx.test.rules
testImplementation libs.androidx.test.runner
testImplementation libs.assertJ
testImplementation libs.mockk
testImplementation libs.okhttp.mockwebserver
testImplementation libs.robolectric
}
26 changes: 13 additions & 13 deletions examples/MagicWeather/app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
plugins {
id 'com.android.application'
id 'kotlin-android'
alias libs.plugins.android.application
alias libs.plugins.kotlin.android
}

android {
Expand Down Expand Up @@ -52,15 +52,15 @@ android {
}

dependencies {
implementation "com.revenuecat.purchases:purchases:$purchasesVersion"
implementation "com.revenuecat.purchases:purchases-store-amazon:$purchasesVersion"
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
implementation "androidx.core:core-ktx:$androidxCoreVersion"
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.3.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycleVersion"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycleVersion"
implementation 'androidx.navigation:navigation-fragment-ktx:2.5.3'
implementation 'androidx.navigation:navigation-ui-ktx:2.5.3'
implementation libs.androidx.appcompat
implementation libs.androidx.constraintlayout
implementation libs.androidx.core
implementation libs.androidx.lifecycle.livedata
implementation libs.androidx.lifecycle.viewmodel
implementation libs.androidx.navigation.fragment
implementation libs.androidx.navigation.ui
implementation libs.kotlin.stdlib
implementation libs.material
implementation libs.revenuecat
implementation libs.revenuecat.amazon
}
18 changes: 4 additions & 14 deletions examples/MagicWeather/build.gradle
Original file line number Diff line number Diff line change
@@ -1,21 +1,11 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext.compileVersion = 31
ext.kotlinVersion = "1.6.21"
ext.purchasesVersion = "6.1.1"
ext.lifecycleVersion = "2.5.0"
ext.androidxCoreVersion = "1.8.0"
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:8.0.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
}

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
plugins {
alias libs.plugins.android.application apply false
alias libs.plugins.kotlin.android apply false
}

allprojects {
Expand Down
25 changes: 25 additions & 0 deletions examples/MagicWeather/gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
[versions]
androidxNavigation = "2.5.3"
kotlin = "1.6.21"
lifecycle = "2.5.0"
purchases = "6.1.1"

[plugins]
android-application = 'com.android.application:8.0.0'
kotlin-android = { id = 'org.jetbrains.kotlin.android', version.ref = 'kotlin' }

[libraries]
androidx-appcompat = "androidx.appcompat:appcompat:1.4.1"
androidx-constraintlayout = "androidx.constraintlayout:constraintlayout:2.1.3"
androidx-core = "androidx.core:core-ktx:1.8.0"
androidx-lifecycle-livedata = { module = "androidx.lifecycle:lifecycle-livedata-ktx", version.ref = "lifecycle" }
androidx-lifecycle-viewmodel = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "lifecycle" }
androidx-navigation-fragment = { module = "androidx.navigation:navigation-fragment-ktx", version.ref = "androidxNavigation" }
androidx-navigation-ui = { module = "androidx.navigation:navigation-ui-ktx", version.ref = "androidxNavigation" }

kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlin" }

material = "com.google.android.material:material:1.6.0"

revenuecat = { module = "com.revenuecat.purchases:purchases", version.ref = "purchases" }
revenuecat-amazon = { module = "com.revenuecat.purchases:purchases-store-amazon", version.ref = "purchases" }
8 changes: 8 additions & 0 deletions examples/MagicWeather/settings.gradle
Original file line number Diff line number Diff line change
@@ -1,2 +1,10 @@
pluginManagement {
repositories {
google()
gradlePluginPortal()
mavenCentral()
}
}

include ':app'
rootProject.name = "MagicWeatherKotlin"
33 changes: 13 additions & 20 deletions examples/purchase-tester/build.gradle
Original file line number Diff line number Diff line change
@@ -1,17 +1,10 @@
apply from: "$rootProject.projectDir/base-application.gradle"

apply plugin: 'androidx.navigation.safeargs.kotlin'

buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'androidx.navigation:navigation-safe-args-gradle-plugin:2.5.3'
}
plugins {
alias libs.plugins.android.application
alias libs.plugins.kotlin.android
alias libs.plugins.androidx.navigation.safeargs
}

apply from: "$rootProject.projectDir/base-application.gradle"

android {
buildFeatures {
Expand Down Expand Up @@ -63,13 +56,13 @@ repositories {
dependencies {
implementation project(path: ':purchases')
implementation project(path: ':feature:amazon')
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
implementation 'androidx.appcompat:appcompat:1.4.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
implementation 'androidx.recyclerview:recyclerview:1.2.1'
implementation 'com.google.android.material:material:1.6.0'
implementation "androidx.datastore:datastore-preferences:1.0.0"

implementation "androidx.navigation:navigation-fragment-ktx:2.5.3"
implementation "androidx.navigation:navigation-ui-ktx:2.5.3"
implementation libs.androidx.navigation.fragment
implementation libs.androidx.navigation.ui
implementation libs.androidx.appcompat
implementation libs.androidx.constraintlayout
implementation libs.androidx.datastore.preferences
implementation libs.androidx.recyclerview
implementation libs.kotlin.stdlib
implementation libs.material
}
35 changes: 20 additions & 15 deletions feature/amazon/build.gradle
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
plugins {
alias libs.plugins.android.library
alias libs.plugins.kotlin.android
alias libs.plugins.kotlin.parcelize
alias libs.plugins.kover
alias libs.plugins.mavenPublish
}

apply from: "$rootProject.projectDir/library.gradle"

android {
namespace 'com.revenuecat.purchases.amazon'
}

ext {
amazonVersion = "3.0.3"
amazon2Version = "2.0.76"
amazon2FileName = "in-app-purchasing-${amazon2Version}.jar"
}
Expand All @@ -15,22 +23,19 @@ dependencies {
implementation project(":strings")
implementation project(":utils")

implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
implementation "androidx.annotation:annotation:$annotationVersion"

implementation "com.amazon.device:amazon-appstore-sdk:$amazonVersion"
implementation libs.amazon.appstore.sdk
implementation libs.androidx.annotation
implementation libs.kotlin.stdlib

testImplementation "com.amazon.device:amazon-appstore-sdk:$amazonVersion"
testImplementation project(":test-utils")
testImplementation "androidx.test:core:$testLibrariesVersion"
testImplementation "androidx.test:core-ktx:$testLibrariesVersion"
testImplementation "androidx.test:runner:$testLibrariesVersion"
testImplementation "androidx.test:rules:$testLibrariesVersion"
testImplementation "androidx.test.ext:junit:$testJUnitVersion"
testImplementation "androidx.test.ext:junit-ktx:$testJUnitVersion"
testImplementation "org.robolectric:robolectric:$robolectricVersion"
testImplementation "io.mockk:mockk:$mockkVersion"
testImplementation "org.assertj:assertj-core:$assertJVersion"
testImplementation libs.amazon.appstore.sdk
testImplementation libs.androidx.test.core
testImplementation libs.androidx.test.junit
testImplementation libs.androidx.test.rules
testImplementation libs.androidx.test.runner
testImplementation libs.assertJ
testImplementation libs.mockk
testImplementation libs.robolectric
}

// Not running with this flag causes verification issues due to the way the Amazon jar is compiled
Expand Down
34 changes: 20 additions & 14 deletions feature/google/build.gradle
Original file line number Diff line number Diff line change
@@ -1,29 +1,35 @@
plugins {
alias libs.plugins.android.library
alias libs.plugins.kotlin.android
alias libs.plugins.kover
alias libs.plugins.mavenPublish
}

apply from: "$rootProject.projectDir/library.gradle"

android {
namespace 'com.revenuecat.purchases.google'
}

dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])

implementation project(":common")
implementation project(":public")
implementation project(":strings")
implementation project(":utils")

implementation 'com.google.android.gms:play-services-ads-identifier:17.0.1'
implementation "androidx.core:core-ktx:$androidxCoreVersion"
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
implementation "com.android.billingclient:billing:$billingVersion"
implementation libs.androidx.core
implementation libs.billing
implementation libs.kotlin.stdlib
implementation libs.playServices.ads.identifier

testImplementation project(":test-utils")
testImplementation "androidx.test:core:$testLibrariesVersion"
testImplementation "androidx.test:runner:$testLibrariesVersion"
testImplementation "androidx.test:rules:$testLibrariesVersion"
testImplementation "androidx.test.ext:junit:$testJUnitVersion"
testImplementation "org.robolectric:robolectric:$robolectricVersion"
testImplementation "io.mockk:mockk:$mockkVersion"
testImplementation "org.assertj:assertj-core:$assertJVersion"
testImplementation 'com.google.android.gms:play-services-ads-identifier:17.0.1'

testImplementation libs.androidx.test.core
testImplementation libs.androidx.test.junit
testImplementation libs.androidx.test.rules
testImplementation libs.androidx.test.runner
testImplementation libs.assertJ
testImplementation libs.mockk
testImplementation libs.robolectric
testImplementation libs.playServices.ads.identifier
}
Loading

0 comments on commit 1b6eb17

Please sign in to comment.