From da45a315a56a8143480efdc2c1656c349873493d Mon Sep 17 00:00:00 2001 From: Goooler Date: Sun, 30 Jan 2022 22:05:47 +0800 Subject: [PATCH 01/18] `LibModule : Module` --- adapter/build.gradle.kts | 2 +- app/build.gradle.kts | 7 +++---- buildSrc/src/main/kotlin/Enums.kt | 11 +++++------ buildSrc/src/main/kotlin/Extensions.kt | 8 ++++---- common/build.gradle.kts | 2 +- login/build.gradle.kts | 2 +- main/build.gradle.kts | 2 +- web/build.gradle.kts | 2 +- 8 files changed, 17 insertions(+), 19 deletions(-) diff --git a/adapter/build.gradle.kts b/adapter/build.gradle.kts index 431a81070..61582c473 100644 --- a/adapter/build.gradle.kts +++ b/adapter/build.gradle.kts @@ -1,6 +1,6 @@ import com.android.build.gradle.LibraryExtension -setupBase(Module.Adapter) +setupBase(LibModule.Adapter) dependencies { apis( diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 96767b1c4..01cfd9409 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -3,9 +3,8 @@ setupApp(appPackageName, appName) dependencies { implementations( // projects - project(Module.Login.moduleName), - project(Module.Main.moduleName), - // project(Module.Map.moduleName), - project(Module.Web.moduleName) + project(LibModule.Login.moduleName), + project(LibModule.Main.moduleName), + project(LibModule.Web.moduleName) ) } diff --git a/buildSrc/src/main/kotlin/Enums.kt b/buildSrc/src/main/kotlin/Enums.kt index f75b725dc..97fd2016e 100644 --- a/buildSrc/src/main/kotlin/Enums.kt +++ b/buildSrc/src/main/kotlin/Enums.kt @@ -1,6 +1,10 @@ @file:Suppress("SpellCheckingInspection") -enum class Module(val tag: String, val runAlone: Boolean = false) { +interface Module { + val tag: String +} + +enum class LibModule(override val tag: String, val runAlone: Boolean = false) : Module { //---------------------base-------------------------------// Base("base"), Common("common"), @@ -8,15 +12,10 @@ enum class Module(val tag: String, val runAlone: Boolean = false) { //---------------------biz-------------------------------// Login("login"), Main("main"), - Map("map"), Web("web"), //---------------------func-------------------------------// Adapter("adapter"), - - //---------------------app-------------------------------// - App("app"), - Test("test") } enum class Flavor { diff --git a/buildSrc/src/main/kotlin/Extensions.kt b/buildSrc/src/main/kotlin/Extensions.kt index 8cc138e00..5d11abe5b 100644 --- a/buildSrc/src/main/kotlin/Extensions.kt +++ b/buildSrc/src/main/kotlin/Extensions.kt @@ -233,12 +233,12 @@ private inline fun Project.setupCommon( } } dependencies { - if (module != Module.Common) { - implementations(project(Module.Common.moduleName)) + if (module != LibModule.Common) { + implementations(project(LibModule.Common.moduleName)) } implementations( - project(Module.Base.moduleName), - project(Module.Adapter.moduleName), + project(LibModule.Base.moduleName), + project(LibModule.Adapter.moduleName), // router Libs.arouter, diff --git a/common/build.gradle.kts b/common/build.gradle.kts index 83a91955a..fbf3de836 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -1,4 +1,4 @@ -setupLib(Module.Common) { +setupLib(LibModule.Common) { buildFeatures.buildConfig = true productFlavors.all { putBuildConfigIntField(BuildConfigField.VersionCode.tag, appVersionCode) diff --git a/login/build.gradle.kts b/login/build.gradle.kts index 5e26ac968..f3a302f26 100644 --- a/login/build.gradle.kts +++ b/login/build.gradle.kts @@ -1 +1 @@ -setupLib(Module.Login) +setupLib(LibModule.Login) diff --git a/main/build.gradle.kts b/main/build.gradle.kts index 09de6c952..f71588ea3 100644 --- a/main/build.gradle.kts +++ b/main/build.gradle.kts @@ -1,4 +1,4 @@ -setupLib(Module.Main) { +setupLib(LibModule.Main) { defaultConfig.testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" sourceSets["main"].res.srcDirs( diff --git a/web/build.gradle.kts b/web/build.gradle.kts index 38a42acc2..7b2e0ed5d 100644 --- a/web/build.gradle.kts +++ b/web/build.gradle.kts @@ -1,4 +1,4 @@ -setupLib(Module.Web) { +setupLib(LibModule.Web) { buildFeatures.buildConfig = true } From 3fe400aa030be0fd6c5fcc396c64da991e408381 Mon Sep 17 00:00:00 2001 From: Goooler Date: Sun, 30 Jan 2022 22:15:14 +0800 Subject: [PATCH 02/18] Enmu AppModule --- app/build.gradle.kts | 2 +- buildSrc/src/main/kotlin/Enums.kt | 8 +++++++- buildSrc/src/main/kotlin/Extensions.kt | 17 ++++++----------- test/build.gradle.kts | 2 +- 4 files changed, 15 insertions(+), 14 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 01cfd9409..f5ecc4584 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,4 +1,4 @@ -setupApp(appPackageName, appName) +setupApp(AppModule.App) dependencies { implementations( diff --git a/buildSrc/src/main/kotlin/Enums.kt b/buildSrc/src/main/kotlin/Enums.kt index 97fd2016e..90b3f512f 100644 --- a/buildSrc/src/main/kotlin/Enums.kt +++ b/buildSrc/src/main/kotlin/Enums.kt @@ -4,7 +4,7 @@ interface Module { val tag: String } -enum class LibModule(override val tag: String, val runAlone: Boolean = false) : Module { +enum class LibModule(override val tag: String) : Module { //---------------------base-------------------------------// Base("base"), Common("common"), @@ -18,6 +18,12 @@ enum class LibModule(override val tag: String, val runAlone: Boolean = false) : Adapter("adapter"), } +enum class AppModule(override val tag: String, val appName: String, val packageName: String) : + Module { + App("app", "io.goooler.demoapp", "Demo"), + Test("app", "io.goooler.test", "Test") +} + enum class Flavor { Daily, Online diff --git a/buildSrc/src/main/kotlin/Extensions.kt b/buildSrc/src/main/kotlin/Extensions.kt index 5d11abe5b..b5286c208 100644 --- a/buildSrc/src/main/kotlin/Extensions.kt +++ b/buildSrc/src/main/kotlin/Extensions.kt @@ -28,10 +28,6 @@ val apiHosts = mapOf( Flavor.Daily.name to "https://api.github.com/", Flavor.Online.name to "https://api.github.com/" ) - -// app -const val appPackageName = "io.goooler.demoapp" -const val appName = "Demo" const val extraScriptPath = "gradle/extra.gradle.kts" val javaVersion = JavaVersion.VERSION_11 const val appVersionName = "1.5.0" @@ -169,16 +165,15 @@ fun Project.setupLib( ) = setupCommon(module, block) fun Project.setupApp( - appPackageName: String, - appName: String, + module: AppModule, block: BaseAppModuleExtension.() -> Unit = {} ) = setupCommon { defaultConfig { - applicationId = appPackageName + applicationId = module.packageName targetSdk = 32 versionCode = appVersionCode versionName = appVersionName - manifestPlaceholders += mapOf("appName" to appName) + manifestPlaceholders += mapOf("appName" to module.appName) resourceConfigurations += setOf("en", "zh-rCN", "xxhdpi") } signingConfigs.create("release") { @@ -191,13 +186,13 @@ fun Project.setupApp( } buildTypes { release { - resValue("string", "app_name", appName) + resValue("string", "app_name", module.appName) signingConfig = signingConfigs["release"] isMinifyEnabled = true proguardFiles("$rootDir/gradle/proguard-rules.pro") } debug { - resValue("string", "app_name", "${appName}.debug") + resValue("string", "app_name", "${module.appName}.debug") signingConfig = signingConfigs["release"] applicationIdSuffix = ".debug" versionNameSuffix = ".debug" @@ -210,7 +205,7 @@ fun Project.setupApp( applicationVariants.all { outputs.all { (this as? ApkVariantOutputImpl)?.outputFileName = - "../../../../${appName}_${versionName}_${versionCode}_" + + "../../../../${module.appName}_${versionName}_${versionCode}_" + "${flavorName.toLowerCase(Locale.ROOT)}_${buildType.name}.apk" } } diff --git a/test/build.gradle.kts b/test/build.gradle.kts index d854476e8..825994b12 100644 --- a/test/build.gradle.kts +++ b/test/build.gradle.kts @@ -1,4 +1,4 @@ -setupApp("$appPackageName.test", "test") { +setupApp(AppModule.Test) { defaultConfig { testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } From 1d5eddbfd1b7420f380e2e2d3ba01255da51b1d5 Mon Sep 17 00:00:00 2001 From: Goooler Date: Sun, 30 Jan 2022 22:21:11 +0800 Subject: [PATCH 03/18] setupBase's module param non-null --- base/build.gradle.kts | 2 +- buildSrc/src/main/kotlin/Extensions.kt | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/base/build.gradle.kts b/base/build.gradle.kts index dd386f78e..081913ed7 100644 --- a/base/build.gradle.kts +++ b/base/build.gradle.kts @@ -1,6 +1,6 @@ import com.android.build.gradle.LibraryExtension -setupBase() +setupBase(LibModule.Base) dependencies { apis( diff --git a/buildSrc/src/main/kotlin/Extensions.kt b/buildSrc/src/main/kotlin/Extensions.kt index b5286c208..3534890b1 100644 --- a/buildSrc/src/main/kotlin/Extensions.kt +++ b/buildSrc/src/main/kotlin/Extensions.kt @@ -88,7 +88,7 @@ fun BaseExtension.kotlinOptions(block: KotlinJvmOptions.() -> Unit) { fun Project.kapt(block: KaptExtension.() -> Unit) = configure(block) inline fun Project.setupBase( - module: Module? = null, + module: Module, crossinline block: T.() -> Unit = {} ) { when (T::class) { @@ -104,7 +104,7 @@ inline fun Project.setupBase( minSdk = 21 vectorDrawables.useSupportLibrary = true ndk.abiFilters += setOf("arm64-v8a") - module?.let { + module.let { resourcePrefix = "${it.tag}_" versionNameSuffix = "_${it.tag}" } @@ -160,14 +160,14 @@ inline fun Project.setupBase( } fun Project.setupLib( - module: Module? = null, + module: LibModule, block: LibraryExtension.() -> Unit = {} ) = setupCommon(module, block) fun Project.setupApp( module: AppModule, block: BaseAppModuleExtension.() -> Unit = {} -) = setupCommon { +) = setupCommon(module) { defaultConfig { applicationId = module.packageName targetSdk = 32 @@ -213,7 +213,7 @@ fun Project.setupApp( } private inline fun Project.setupCommon( - module: Module? = null, + module: Module, crossinline block: T.() -> Unit = {} ) = setupBase(module) { flavorDimensions("channel") From 2906cae7eb85d19c026c25151ea0c62b6cf59c56 Mon Sep 17 00:00:00 2001 From: Goooler Date: Sun, 30 Jan 2022 22:23:49 +0800 Subject: [PATCH 04/18] Add todo --- buildSrc/src/main/kotlin/Enums.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/buildSrc/src/main/kotlin/Enums.kt b/buildSrc/src/main/kotlin/Enums.kt index 90b3f512f..dfcbfc74d 100644 --- a/buildSrc/src/main/kotlin/Enums.kt +++ b/buildSrc/src/main/kotlin/Enums.kt @@ -1,5 +1,6 @@ @file:Suppress("SpellCheckingInspection") +// TODO: Make Module sealed interface Module { val tag: String } From a9d663cfa9620d01964f5fb129e11e9568c024e1 Mon Sep 17 00:00:00 2001 From: Goooler Date: Sun, 30 Jan 2022 22:24:59 +0800 Subject: [PATCH 05/18] Remove `ApiKey` --- buildSrc/src/main/kotlin/Enums.kt | 6 ------ common/build.gradle.kts | 1 - 2 files changed, 7 deletions(-) diff --git a/buildSrc/src/main/kotlin/Enums.kt b/buildSrc/src/main/kotlin/Enums.kt index dfcbfc74d..cfef1f511 100644 --- a/buildSrc/src/main/kotlin/Enums.kt +++ b/buildSrc/src/main/kotlin/Enums.kt @@ -37,9 +37,3 @@ enum class BuildConfigField(val tag: String) { ApiHost("API_HOST"), DoraemonKitKey("DORAEMON_KIT_KEY") } - -enum class ApiKey(val key: String) { - DoraemonKit("4a8c3eef29f029bc197705faad83f43d"), - AmapDebug("419ff22368500a49f0d894ac80d08725"), - AmapRelease("ab0ee784fe95f3de2af3db07e11c37ed") -} diff --git a/common/build.gradle.kts b/common/build.gradle.kts index fbf3de836..e40e6e72a 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -5,7 +5,6 @@ setupLib(LibModule.Common) { putBuildConfigStringField(BuildConfigField.VersionName.tag, appVersionName) putBuildConfigStringField(BuildConfigField.CdnPrefix.tag, cdnPrefix) putBuildConfigStringField(BuildConfigField.ApiHost.tag, apiHosts[name]) - putBuildConfigStringField(BuildConfigField.DoraemonKitKey.tag, ApiKey.DoraemonKit.key) } } From f236d85ed31aec43ede7cea825190d989df1259d Mon Sep 17 00:00:00 2001 From: Goooler Date: Sun, 30 Jan 2022 22:42:48 +0800 Subject: [PATCH 06/18] Add `buildConfigField(BuildConfigField)` --- buildSrc/src/main/kotlin/Enums.kt | 11 +++++------ buildSrc/src/main/kotlin/Extensions.kt | 12 ++++++------ common/build.gradle.kts | 8 ++++---- 3 files changed, 15 insertions(+), 16 deletions(-) diff --git a/buildSrc/src/main/kotlin/Enums.kt b/buildSrc/src/main/kotlin/Enums.kt index cfef1f511..fe70e2f60 100644 --- a/buildSrc/src/main/kotlin/Enums.kt +++ b/buildSrc/src/main/kotlin/Enums.kt @@ -30,10 +30,9 @@ enum class Flavor { Online } -enum class BuildConfigField(val tag: String) { - VersionCode("VERSION_CODE"), - VersionName("VERSION_NAME"), - CdnPrefix("CDN_PREFIX"), - ApiHost("API_HOST"), - DoraemonKitKey("DORAEMON_KIT_KEY") +enum class BuildConfigField(val key: String, val value: Any) { + VersionCode("VERSION_CODE", appVersionCode), + VersionName("VERSION_NAME", appVersionName), + CdnPrefix("CDN_PREFIX", "https://raw.githubusercontent.com/"), + ApiHost("API_HOST", "https://api.github.com/") } diff --git a/buildSrc/src/main/kotlin/Extensions.kt b/buildSrc/src/main/kotlin/Extensions.kt index 3534890b1..b6313e331 100644 --- a/buildSrc/src/main/kotlin/Extensions.kt +++ b/buildSrc/src/main/kotlin/Extensions.kt @@ -73,12 +73,12 @@ fun PluginAware.applyPlugins(vararg names: String) { } } -fun VariantDimension.putBuildConfigStringField(name: String, value: String?) { - buildConfigField("String", name, "\"$value\"") -} - -fun VariantDimension.putBuildConfigIntField(name: String, value: Int) { - buildConfigField("Integer", name, value.toString()) +fun VariantDimension.buildConfigField(field: BuildConfigField) { + if (field.value is Int) { + buildConfigField("Integer", field.key, field.value.toString()) + } else if (field.value is String) { + buildConfigField("String", field.key, "\"${field.value}\"") + } } fun BaseExtension.kotlinOptions(block: KotlinJvmOptions.() -> Unit) { diff --git a/common/build.gradle.kts b/common/build.gradle.kts index e40e6e72a..3c93bc394 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -1,10 +1,10 @@ setupLib(LibModule.Common) { buildFeatures.buildConfig = true productFlavors.all { - putBuildConfigIntField(BuildConfigField.VersionCode.tag, appVersionCode) - putBuildConfigStringField(BuildConfigField.VersionName.tag, appVersionName) - putBuildConfigStringField(BuildConfigField.CdnPrefix.tag, cdnPrefix) - putBuildConfigStringField(BuildConfigField.ApiHost.tag, apiHosts[name]) + buildConfigField(BuildConfigField.VersionCode) + buildConfigField(BuildConfigField.VersionName) + buildConfigField(BuildConfigField.CdnPrefix) + buildConfigField(BuildConfigField.ApiHost) } } From c0a0bc511b7a42a00031111f0d98a7aef1d07404 Mon Sep 17 00:00:00 2001 From: Goooler Date: Sun, 30 Jan 2022 22:47:07 +0800 Subject: [PATCH 07/18] Remove fields --- buildSrc/src/main/kotlin/Extensions.kt | 7 ------- 1 file changed, 7 deletions(-) diff --git a/buildSrc/src/main/kotlin/Extensions.kt b/buildSrc/src/main/kotlin/Extensions.kt index b6313e331..b902246c1 100644 --- a/buildSrc/src/main/kotlin/Extensions.kt +++ b/buildSrc/src/main/kotlin/Extensions.kt @@ -1,5 +1,3 @@ -@file:Suppress("UnstableApiUsage") - import com.android.build.api.dsl.CommonExtension import com.android.build.api.dsl.VariantDimension import com.android.build.gradle.BaseExtension @@ -23,11 +21,6 @@ import org.gradle.kotlin.dsl.get import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions import org.jetbrains.kotlin.gradle.plugin.KaptExtension -const val cdnPrefix = "https://raw.githubusercontent.com/" -val apiHosts = mapOf( - Flavor.Daily.name to "https://api.github.com/", - Flavor.Online.name to "https://api.github.com/" -) const val extraScriptPath = "gradle/extra.gradle.kts" val javaVersion = JavaVersion.VERSION_11 const val appVersionName = "1.5.0" From aacb9bfeac20f33cad228e877c1d87271d3d6396 Mon Sep 17 00:00:00 2001 From: Goooler Date: Sun, 30 Jan 2022 22:51:00 +0800 Subject: [PATCH 08/18] Move `testInstrumentationRunner` to `setupBase` --- buildSrc/src/main/kotlin/Extensions.kt | 7 +++---- main/build.gradle.kts | 2 -- test/build.gradle.kts | 6 +----- 3 files changed, 4 insertions(+), 11 deletions(-) diff --git a/buildSrc/src/main/kotlin/Extensions.kt b/buildSrc/src/main/kotlin/Extensions.kt index b902246c1..da5482b2f 100644 --- a/buildSrc/src/main/kotlin/Extensions.kt +++ b/buildSrc/src/main/kotlin/Extensions.kt @@ -92,15 +92,14 @@ inline fun Project.setupBase( applyPlugins(Plugins.kotlinAndroid, Plugins.kotlinKapt) extensions.configure("android") { + resourcePrefix = "${module.tag}_" compileSdkVersion(32) defaultConfig { minSdk = 21 vectorDrawables.useSupportLibrary = true ndk.abiFilters += setOf("arm64-v8a") - module.let { - resourcePrefix = "${it.tag}_" - versionNameSuffix = "_${it.tag}" - } + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + versionNameSuffix = "_${module.tag}" } sourceSets.configureEach { java.srcDirs("src/$name/kotlin") diff --git a/main/build.gradle.kts b/main/build.gradle.kts index f71588ea3..82ecee8a1 100644 --- a/main/build.gradle.kts +++ b/main/build.gradle.kts @@ -1,6 +1,4 @@ setupLib(LibModule.Main) { - defaultConfig.testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - sourceSets["main"].res.srcDirs( "src/main/res/core", "src/main/res/other" diff --git a/test/build.gradle.kts b/test/build.gradle.kts index 825994b12..f638bb4ba 100644 --- a/test/build.gradle.kts +++ b/test/build.gradle.kts @@ -1,8 +1,4 @@ -setupApp(AppModule.Test) { - defaultConfig { - testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - } -} +setupApp(AppModule.Test) dependencies { implementations( From 942a27e3f0a2163e2aa8586461203d7c2987641f Mon Sep 17 00:00:00 2001 From: Goooler Date: Sun, 30 Jan 2022 22:53:44 +0800 Subject: [PATCH 09/18] Trailing comma --- buildSrc/src/main/kotlin/Enums.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/main/kotlin/Enums.kt b/buildSrc/src/main/kotlin/Enums.kt index fe70e2f60..265e36cc6 100644 --- a/buildSrc/src/main/kotlin/Enums.kt +++ b/buildSrc/src/main/kotlin/Enums.kt @@ -16,7 +16,7 @@ enum class LibModule(override val tag: String) : Module { Web("web"), //---------------------func-------------------------------// - Adapter("adapter"), + Adapter("adapter") } enum class AppModule(override val tag: String, val appName: String, val packageName: String) : From b94fc238fda0498b6ca0f261751807e475fc3e60 Mon Sep 17 00:00:00 2001 From: Goooler Date: Sun, 30 Jan 2022 22:55:30 +0800 Subject: [PATCH 10/18] Fix appName & packageName --- buildSrc/src/main/kotlin/Enums.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/buildSrc/src/main/kotlin/Enums.kt b/buildSrc/src/main/kotlin/Enums.kt index 265e36cc6..69b78e1a3 100644 --- a/buildSrc/src/main/kotlin/Enums.kt +++ b/buildSrc/src/main/kotlin/Enums.kt @@ -21,8 +21,8 @@ enum class LibModule(override val tag: String) : Module { enum class AppModule(override val tag: String, val appName: String, val packageName: String) : Module { - App("app", "io.goooler.demoapp", "Demo"), - Test("app", "io.goooler.test", "Test") + App("app", "Demo", "io.goooler.demoapp"), + Test("app", "Test", "io.goooler.test") } enum class Flavor { From 2c0f12074ef4eda87778ea124db45dcc2b4e243b Mon Sep 17 00:00:00 2001 From: Goooler Date: Sun, 30 Jan 2022 22:56:10 +0800 Subject: [PATCH 11/18] Rename packageName to appId --- buildSrc/src/main/kotlin/Enums.kt | 3 +-- buildSrc/src/main/kotlin/Extensions.kt | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/buildSrc/src/main/kotlin/Enums.kt b/buildSrc/src/main/kotlin/Enums.kt index 69b78e1a3..e649c8d12 100644 --- a/buildSrc/src/main/kotlin/Enums.kt +++ b/buildSrc/src/main/kotlin/Enums.kt @@ -19,8 +19,7 @@ enum class LibModule(override val tag: String) : Module { Adapter("adapter") } -enum class AppModule(override val tag: String, val appName: String, val packageName: String) : - Module { +enum class AppModule(override val tag: String, val appName: String, val appId: String) : Module { App("app", "Demo", "io.goooler.demoapp"), Test("app", "Test", "io.goooler.test") } diff --git a/buildSrc/src/main/kotlin/Extensions.kt b/buildSrc/src/main/kotlin/Extensions.kt index da5482b2f..6ccc86e4f 100644 --- a/buildSrc/src/main/kotlin/Extensions.kt +++ b/buildSrc/src/main/kotlin/Extensions.kt @@ -161,7 +161,7 @@ fun Project.setupApp( block: BaseAppModuleExtension.() -> Unit = {} ) = setupCommon(module) { defaultConfig { - applicationId = module.packageName + applicationId = module.appId targetSdk = 32 versionCode = appVersionCode versionName = appVersionName From e8c6b6bda8e4e45423538ce338c069d949131fc8 Mon Sep 17 00:00:00 2001 From: Goooler Date: Sun, 30 Jan 2022 22:58:54 +0800 Subject: [PATCH 12/18] Add `isShrinkResources` --- buildSrc/src/main/kotlin/Extensions.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/buildSrc/src/main/kotlin/Extensions.kt b/buildSrc/src/main/kotlin/Extensions.kt index 6ccc86e4f..f48145a0f 100644 --- a/buildSrc/src/main/kotlin/Extensions.kt +++ b/buildSrc/src/main/kotlin/Extensions.kt @@ -181,6 +181,7 @@ fun Project.setupApp( resValue("string", "app_name", module.appName) signingConfig = signingConfigs["release"] isMinifyEnabled = true + isShrinkResources = true proguardFiles("$rootDir/gradle/proguard-rules.pro") } debug { From c256a606b32d031818afc2aa6aac13e4d99edb82 Mon Sep 17 00:00:00 2001 From: Goooler Date: Sun, 30 Jan 2022 23:09:13 +0800 Subject: [PATCH 13/18] Remove `flavorName.toLowerCase()` --- buildSrc/src/main/kotlin/Extensions.kt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/buildSrc/src/main/kotlin/Extensions.kt b/buildSrc/src/main/kotlin/Extensions.kt index f48145a0f..28ccf205a 100644 --- a/buildSrc/src/main/kotlin/Extensions.kt +++ b/buildSrc/src/main/kotlin/Extensions.kt @@ -5,7 +5,6 @@ import com.android.build.gradle.LibraryExtension import com.android.build.gradle.internal.api.ApkVariantOutputImpl import com.android.build.gradle.internal.dsl.BaseAppModuleExtension import java.io.File -import java.util.Locale import java.util.Properties import kotlin.math.pow import org.gradle.api.JavaVersion @@ -199,7 +198,7 @@ fun Project.setupApp( outputs.all { (this as? ApkVariantOutputImpl)?.outputFileName = "../../../../${module.appName}_${versionName}_${versionCode}_" + - "${flavorName.toLowerCase(Locale.ROOT)}_${buildType.name}.apk" + "${flavorName}_${buildType.name}.apk" } } block() From f19c7223bc62101efaffa2f9a90f62621b1ed35e Mon Sep 17 00:00:00 2001 From: Goooler Date: Sun, 30 Jan 2022 23:16:50 +0800 Subject: [PATCH 14/18] Remove `Flavor` --- buildSrc/src/main/kotlin/Enums.kt | 5 ----- buildSrc/src/main/kotlin/Extensions.kt | 4 ++-- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/buildSrc/src/main/kotlin/Enums.kt b/buildSrc/src/main/kotlin/Enums.kt index e649c8d12..b4d5b6692 100644 --- a/buildSrc/src/main/kotlin/Enums.kt +++ b/buildSrc/src/main/kotlin/Enums.kt @@ -24,11 +24,6 @@ enum class AppModule(override val tag: String, val appName: String, val appId: S Test("app", "Test", "io.goooler.test") } -enum class Flavor { - Daily, - Online -} - enum class BuildConfigField(val key: String, val value: Any) { VersionCode("VERSION_CODE", appVersionCode), VersionName("VERSION_NAME", appVersionName), diff --git a/buildSrc/src/main/kotlin/Extensions.kt b/buildSrc/src/main/kotlin/Extensions.kt index 28ccf205a..1f705a011 100644 --- a/buildSrc/src/main/kotlin/Extensions.kt +++ b/buildSrc/src/main/kotlin/Extensions.kt @@ -210,8 +210,8 @@ private inline fun Project.setupCommon( ) = setupBase(module) { flavorDimensions("channel") productFlavors { - create(Flavor.Daily.name) - create(Flavor.Online.name) + create("daily") + create("online") } kapt { arguments { From 4a4ad5849a6e96860837b4808e0499db78c8517b Mon Sep 17 00:00:00 2001 From: Goooler Date: Sun, 30 Jan 2022 23:18:46 +0800 Subject: [PATCH 15/18] Remove versionNameSuffix --- buildSrc/src/main/kotlin/Extensions.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/buildSrc/src/main/kotlin/Extensions.kt b/buildSrc/src/main/kotlin/Extensions.kt index 1f705a011..ca6cc79c6 100644 --- a/buildSrc/src/main/kotlin/Extensions.kt +++ b/buildSrc/src/main/kotlin/Extensions.kt @@ -98,7 +98,6 @@ inline fun Project.setupBase( vectorDrawables.useSupportLibrary = true ndk.abiFilters += setOf("arm64-v8a") testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - versionNameSuffix = "_${module.tag}" } sourceSets.configureEach { java.srcDirs("src/$name/kotlin") @@ -187,7 +186,6 @@ fun Project.setupApp( resValue("string", "app_name", "${module.appName}.debug") signingConfig = signingConfigs["release"] applicationIdSuffix = ".debug" - versionNameSuffix = ".debug" isJniDebuggable = true isRenderscriptDebuggable = true isCrunchPngs = false From 2fa997d9a09330a9415fee00c6a26d554a0b901c Mon Sep 17 00:00:00 2001 From: Goooler Date: Sun, 30 Jan 2022 23:24:39 +0800 Subject: [PATCH 16/18] Rearrange --- buildSrc/src/main/kotlin/Extensions.kt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/buildSrc/src/main/kotlin/Extensions.kt b/buildSrc/src/main/kotlin/Extensions.kt index ca6cc79c6..9cfeaf5cf 100644 --- a/buildSrc/src/main/kotlin/Extensions.kt +++ b/buildSrc/src/main/kotlin/Extensions.kt @@ -194,9 +194,8 @@ fun Project.setupApp( dependenciesInfo.includeInApk = false applicationVariants.all { outputs.all { - (this as? ApkVariantOutputImpl)?.outputFileName = - "../../../../${module.appName}_${versionName}_${versionCode}_" + - "${flavorName}_${buildType.name}.apk" + (this as? ApkVariantOutputImpl)?.outputFileName = "../../../../" + + "${module.appName}_${versionName}_${versionCode}_${flavorName}_${buildType.name}.apk" } } block() From 88a828b779731f01bd9fe61f19cb473e6ebb933b Mon Sep 17 00:00:00 2001 From: Goooler Date: Sun, 30 Jan 2022 23:32:27 +0800 Subject: [PATCH 17/18] Move deps --- buildSrc/src/main/kotlin/Extensions.kt | 18 +----------------- common/build.gradle.kts | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/buildSrc/src/main/kotlin/Extensions.kt b/buildSrc/src/main/kotlin/Extensions.kt index 9cfeaf5cf..600093eb5 100644 --- a/buildSrc/src/main/kotlin/Extensions.kt +++ b/buildSrc/src/main/kotlin/Extensions.kt @@ -221,26 +221,10 @@ private inline fun Project.setupCommon( implementations(project(LibModule.Common.moduleName)) } implementations( - project(LibModule.Base.moduleName), - project(LibModule.Adapter.moduleName), - - // router Libs.arouter, - - // UI - Libs.constraintLayout, - Libs.cardView, - Libs.material, - *Libs.smartRefreshLayout, - Libs.photoView, - - // utils *Libs.hilt, *Libs.room, - *Libs.rx, - *Libs.moshi, - Libs.collection, - Libs.utils + *Libs.moshi ) kapts(Libs.arouterCompiler, Libs.moshiCompiler, Libs.roomCompiler, Libs.hiltCompiler) } diff --git a/common/build.gradle.kts b/common/build.gradle.kts index 3c93bc394..e1fd0866c 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -9,6 +9,21 @@ setupLib(LibModule.Common) { } dependencies { + apis( + // project + project(LibModule.Base.moduleName), + project(LibModule.Adapter.moduleName), + // UI + Libs.constraintLayout, + Libs.cardView, + Libs.material, + *Libs.smartRefreshLayout, + Libs.photoView, + // other + *Libs.rx, + Libs.collection, + Libs.utils + ) implementations( // network *Libs.coil From eed9fd7180e5b390fbdfc0efcb8c4d66901a7981 Mon Sep 17 00:00:00 2001 From: Goooler Date: Sun, 30 Jan 2022 23:34:13 +0800 Subject: [PATCH 18/18] Impl leakCanary in app module --- app/build.gradle.kts | 1 + common/build.gradle.kts | 14 +++----------- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index f5ecc4584..22eae3b89 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -7,4 +7,5 @@ dependencies { project(LibModule.Main.moduleName), project(LibModule.Web.moduleName) ) + debugImplementations(Libs.leakCanary) } diff --git a/common/build.gradle.kts b/common/build.gradle.kts index e1fd0866c..cb487161a 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -24,15 +24,7 @@ dependencies { Libs.collection, Libs.utils ) - implementations( - // network - *Libs.coil - ) - debugImplementations( - Libs.leakCanary, - Libs.chuckerDebug - ) - releaseImplementations( - Libs.chuckerRelease - ) + implementations(*Libs.coil) + debugImplementations(Libs.chuckerDebug) + releaseImplementations(Libs.chuckerRelease) }