scanner: support libs.versions.toml

This commit is contained in:
linsui 2024-09-15 02:03:26 +08:00
parent 528760acc8
commit eff0ef48f4
17 changed files with 723 additions and 35 deletions

View file

@ -0,0 +1,2 @@
implementation libs.bundles.firebase
implementation libs.play.service.ads

View file

@ -0,0 +1,5 @@
plugins {
alias(libs.plugins.google.services)
alias(libs.plugins.firebase.crashlytics)
alias(projectLibs.plugins.firebase.crashlytics)
}

View file

@ -0,0 +1,15 @@
[versions]
firebase = "1.1.1"
gms = "1.2.1"
[libraries]
firebase-crash = { module = "com.google.firebase:firebase-crash", version.ref = "firebase" }
firebase_core = { module = "com.google.firebase:firebase-core", version = "2.2.2" }
"play.service.ads" = { module = "com.google.android.gms:play-services-ads", version.ref = "gms"}
[plugins]
google-services = { id = "com.google.gms.google-services", version.ref = "gms" }
firebase-crashlytics = { id = "com.google.firebase.crashlytics", version.ref = "firebase" }
[bundles]
firebase = ["firebase-crash", "firebase_core"]

View file

@ -0,0 +1,15 @@
[versions]
firebase = "1.1.1"
gms = "1.2.1"
[libraries]
firebase-crash = { module = "com.google.firebase:firebase-crash", version.ref = "firebase" }
firebase_core = { module = "com.google.firebase:firebase-core", version = "2.2.2" }
"play.service.ads" = { module = "com.google.android.gms:play-services-ads", version.ref = "gms"}
[plugins]
google-services = { id = "com.google.gms.google-services", version.ref = "gms" }
firebase-crashlytics = { id = "com.google.firebase.crashlytics", version.ref = "firebase" }
[bundles]
firebase = ["firebase-crash", "firebase_core"]

View file

@ -0,0 +1,11 @@
dependencyResolutionManagement {
defaultLibrariesExtensionName = "projectLibs"
versionCatalogs {
create("libs") {
from(files("./libs.versions.toml"))
}
create("anotherLibs") {
from(files("$rootDir/libs.versions.toml"))
}
}
}

View file

@ -0,0 +1,118 @@
import java.io.FileInputStream
import java.util.Properties
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.google.services)
alias(libs.plugins.firebase.crashlytics)
alias(libs.plugins.ksp)
}
android {
namespace = "com.lolo.io.onelist"
val versionPropsFile = file("../version.properties")
var versionCodeCI: Int? = null
if (versionPropsFile.canRead()) {
val versionProps = Properties()
versionProps.load(FileInputStream(versionPropsFile))
val v = versionProps["VERSION_CODE"]
versionCodeCI = (versionProps["VERSION_CODE"] as String).toInt()
}
defaultConfig {
multiDexEnabled = true
applicationId = "com.lolo.io.onelist"
compileSdk = 34
minSdk = 23
targetSdk = 34
versionCode = versionCodeCI ?: 19
versionName = "1.4.2"
vectorDrawables.useSupportLibrary = true
}
androidResources {
generateLocaleConfig = true
}
buildFeatures {
viewBinding = true
buildConfig = true
}
ksp {
arg("room.schemaLocation", "$projectDir/schemas")
}
buildTypes {
getByName("debug") {
applicationIdSuffix = ".debug"
versionNameSuffix = "-DEBUG"
resValue("string", "app_name", "1ListDev")
}
getByName("release") {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
resValue("string", "app_name", "1List")
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
}
repositories {
google()
mavenCentral()
maven { url = uri("https://jitpack.io") }
}
dependencies {
// android
implementation(libs.androidx.core.splashscreen)
implementation(libs.androidx.preference.ktx)
implementation(libs.androidx.lifecycle.extensions)
implementation(libs.androidx.legacy.support.v4)
implementation(libs.androidx.appcompat)
// android - design
implementation(libs.constraint.layout)
implementation(libs.androidx.recyclerview)
implementation(libs.flexbox)
implementation(libs.material)
implementation(libs.androidx.swiperefreshlayout)
// kotlin
implementation(libs.kotlinx.coroutines.core)
implementation(libs.kotlin.stdlib.jdk7)
// firebase
implementation(libs.firebase.crashlytics)
// koin di
implementation(libs.koin.android)
implementation(libs.koin.androidx.navigation)
// room
implementation(libs.androidx.room.runtime)
implementation(libs.androidx.room.ktx)
ksp(libs.androidx.room.compiler)
// json
implementation(libs.gson)
// other libs
implementation(libs.whatsnew)
implementation(libs.storage)
implementation(libs.advrecyclerview)
}

View file

@ -0,0 +1,11 @@
plugins {
alias(libs.plugins.android.application) apply false
alias(libs.plugins.kotlin.android) apply false
alias(libs.plugins.google.services) apply false
alias(libs.plugins.firebase.crashlytics) apply false
alias(libs.plugins.ksp) apply false
}
tasks.register("clean", Delete::class) {
delete(rootProject.layout.buildDirectory)
}

View file

@ -0,0 +1,58 @@
[versions]
advrecyclerview = "1.0.0"
appcompat = "1.6.1"
constraint-layout = "2.0.4"
crashlytics = "18.6.2"
firebase-crashlytics-gradle-plugin = "2.9.9"
flexbox = "3.0.0"
gson = "2.5.6"
kotlin = "1.9.20"
kotlin-coroutines = "1.6.4"
legacy-support-v4 = "1.0.0"
lifecycle-extensions = "2.2.0"
material = "1.11.0"
preference-ktx = "1.2.1"
recyclerview = "1.3.2"
splashscreen ="1.0.1"
koin ="3.5.0"
room="2.6.1"
storage = "1.5.5"
swiperefreshlayout = "1.1.0"
whatsnew = "0.1.7"
ksp-plugin="1.9.20-1.0.14"
# plugins versions
android-application-plugin="8.3.0"
kotlin-android-plugin="1.9.22"
google-services-plugin = "4.4.1"
[libraries]
advrecyclerview = { module = "com.h6ah4i.android.widget.advrecyclerview:advrecyclerview", version.ref = "advrecyclerview" }
androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "appcompat" }
androidx-core-splashscreen = { module = "androidx.core:core-splashscreen", version.ref = "splashscreen" }
androidx-legacy-support-v4 = { module = "androidx.legacy:legacy-support-v4", version.ref = "legacy-support-v4" }
androidx-lifecycle-extensions = { module = "androidx.lifecycle:lifecycle-extensions", version.ref = "lifecycle-extensions" }
androidx-preference-ktx = { module = "androidx.preference:preference-ktx", version.ref = "preference-ktx" }
androidx-recyclerview = { module = "androidx.recyclerview:recyclerview", version.ref = "recyclerview" }
androidx-room-runtime = { group = "androidx.room", name = "room-runtime", version.ref = "room" }
androidx-room-ktx = { group = "androidx.room", name = "room-ktx", version.ref = "room" }
androidx-room-compiler = { group = "androidx.room", name = "room-compiler", version.ref = "room" }
androidx-swiperefreshlayout = { module = "androidx.swiperefreshlayout:swiperefreshlayout", version.ref = "swiperefreshlayout" }
constraint-layout = { module = "com.android.support.constraint:constraint-layout", version.ref = "constraint-layout" }
firebase-crashlytics = { module = "com.google.firebase:firebase-crashlytics", version.ref = "crashlytics" }
flexbox = { module = "com.google.android.flexbox:flexbox", version.ref = "flexbox" }
gson = { module = "org.immutables:gson", version.ref = "gson" }
koin-android = { module = "io.insert-koin:koin-android", version.ref = "koin" }
koin-androidx-navigation = { module = "io.insert-koin:koin-androidx-navigation", version.ref = "koin" }
kotlin-stdlib-jdk7 = { module = "org.jetbrains.kotlin:kotlin-stdlib-jdk7", version.ref = "kotlin" }
kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlin-coroutines" }
material = { module = "com.google.android.material:material", version.ref = "material" }
storage = { module = "com.anggrayudi:storage", version.ref = "storage" }
whatsnew = { module = "io.github.tonnyl:whatsnew", version.ref = "whatsnew" }
[plugins]
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp-plugin" }
android-application = { id = "com.android.application", version.ref = "android-application-plugin" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin-android-plugin" }
google-services = { id = "com.google.gms.google-services", version.ref = "google-services-plugin" }
firebase-crashlytics = { id = "com.google.firebase.crashlytics", version.ref = "firebase-crashlytics-gradle-plugin" }

View file

@ -0,0 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

View file

@ -0,0 +1,9 @@
pluginManagement {
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}
include 'app'

View file

@ -0,0 +1,47 @@
import java.net.URI
buildscript {
dependencies {
classpath("com.android.tools.build:gradle:8.6.0")
}
}
plugins {
alias(libs.plugins.android.application) apply false
alias(libs.plugins.android.library) apply false
alias(libs.plugins.kotlin.android) apply false
alias(libs.plugins.kotlin.jvm) apply false
alias(libs.plugins.sonarqube)
alias(libs.plugins.ktlint)
alias(libs.plugins.ksp)
alias(libs.plugins.roborazzi) apply false
alias(libs.plugins.gms) apply false
}
sonarqube {
properties {
property("sonar.projectKey", "org.piepmeyer.gauguin")
property("sonar.organization", "meikpiep")
property("sonar.verbose", "true")
property("sonar.host.url", "https://sonarcloud.io")
}
}
tasks.sonar {
onlyIf("There is no property 'buildserver'") {
project.hasProperty("buildserver")
}
dependsOn(":gauguin-app:lint")
}
allprojects {
repositories {
mavenCentral()
google()
maven { url = URI("https://jitpack.io") }
}
}
subprojects {
apply(plugin = "org.jlleitschuh.gradle.ktlint")
}

View file

@ -0,0 +1,91 @@
[versions]
kotlin = "1.9.23"
koin = "3.5.6"
koin-annotations="1.3.1"
kotest = "5.9.1"
kotest-extensions = "1.3.0"
kotlin-coroutines = "1.8.1"
android-gradle-plugin = "8.6.0"
androidUiTestingUtils = "2.3.3"
roborazzi = "1.26.0"
[libraries]
kotlin-coroutines-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "kotlin-coroutines" }
kotlin-coroutines-debug = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-debug", version.ref = "kotlin-coroutines" }
kotlin-serialization = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version = "1.6.3" }
logging-kotlin = { group = "io.github.oshai", name = "kotlin-logging-jvm", version = "6.0.9" }
logging-slf = { group = "org.slf4j", name = "slf4j-api", version = "2.0.13" }
logging-logback-android = { group = "com.github.tony19", name = "logback-android", version = "3.0.0" }
logging-logback-kotlin = { group = "ch.qos.logback", name = "logback-classic", version = "1.5.6" }
android-material = { group = "com.google.android.material", name = "material", version = "1.12.0" }
androidx-annotation = { group = "androidx.annotation", name = "annotation", version = "1.8.2" }
androidx-ktx = { group = "androidx.core", name = "core-ktx", version = "1.13.1" }
androidx-constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version = "2.1.4" }
androidx-drawerlayout = { group = "androidx.drawerlayout", name = "drawerlayout", version = "1.2.0" }
androidx-fragment = { group = "androidx.fragment", name = "fragment-ktx", version = "1.8.3" }
androidx-gridlayout = { group = "androidx.gridlayout", name = "gridlayout", version = "1.0.0" }
androidx-lifecycle-runtime = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version = "2.8.5" }
androidx-lifecycle-viewmodel = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-ktx", version = "2.8.5" }
androidx-preference = { group = "androidx.preference", name = "preference-ktx", version = "1.2.1" }
androidx-recyclerview = { group = "androidx.recyclerview", name = "recyclerview", version = "1.3.2" }
androidx-transition = { group = "androidx.transition", name = "transition", version = "1.5.1" }
androidx-window = { group = "androidx.window", name = "window", version = "1.3.0" }
androidx-window-core = { group = "androidx.window", name = "window-core", version = "1.3.0" }
androidx-test-junit-ktx = { group = "androidx.test.ext", name = "junit-ktx", version = "1.2.1" }
androidx-test-rules = { group = "androidx.test", name = "rules", version = "1.6.1" }
androidx-test-runner = { group = "androidx.test", name = "runner", version = "1.6.2" }
koin-core = { group = "io.insert-koin", name = "koin-core", version.ref = "koin" }
koin-annotations = { group = "io.insert-koin", name = "koin-annotations", version.ref = "koin-annotations" }
koin-ksp-compiler = { group = "io.insert-koin", name = "koin-ksp-compiler", version.ref = "koin-annotations" }
koin-test = { group = "io.insert-koin", name = "koin-test", version.ref = "koin" }
koin-android = { group = "io.insert-koin", name = "koin-android", version.ref = "koin" }
kotest-runner = { group = "io.kotest", name = "kotest-runner-junit5", version.ref = "kotest" }
kotest-assertions = { group = "io.kotest", name = "kotest-assertions-core", version.ref = "kotest" }
kotest-parametrizedtests = { group = "io.kotest", name = "kotest-framework-datatest", version.ref = "kotest" }
kotest-koin = { group = "io.kotest.extensions", name = "kotest-extensions-koin", version.ref = "kotest-extensions" }
test-mockk = { group = "io.mockk", name = "mockk", version = "1.13.11" }
androiduitestingutils-utils = { group = "com.github.sergio-sastre.AndroidUiTestingUtils", name = "utils", version.ref = "androidUiTestingUtils" }
androiduitestingutils-robolectric = { group = "com.github.sergio-sastre.AndroidUiTestingUtils", name = "robolectric", version.ref = "androidUiTestingUtils" }
roboelectric = { group = "org.robolectric", name = "robolectric", version = "4.13" }
roborazzi = { group = "io.github.takahirom.roborazzi", name = "roborazzi", version.ref = "roborazzi" }
roborazzi-junit = { group = "io.github.takahirom.roborazzi", name = "roborazzi-junit-rule", version.ref = "roborazzi" }
junit-vintage-engine = { group = "org.junit.vintage", name = "junit-vintage-engine", version = "5.10.3" }
thirdparty-konfetti = { group = "nl.dionsegijn", name = "konfetti-xml", version = "2.0.4" }
#thirdparty-ferriswheel = { group = "ru.github.igla", name = "ferriswheel", version = "1.2" }
thirdparty-navigationdrawer = { group = "com.mikepenz", name = "materialdrawer", version = "9.0.2" }
thirdparty-balloon = { group = "com.github.skydoves", name = "balloon", version = "1.6.7" }
thirdparty-vico = { group = "com.patrykandpatrick.vico", name = "views", version = "2.0.0-alpha.25" }
thirdparty-androidplot = { group = "com.androidplot", name = "androidplot-core", version = "1.5.11" }
thirdparty-leakcanary = { group = "com.squareup.leakcanary", name = "leakcanary-android", version = "2.14" }
[plugins]
android-application = { id = "com.android.application", version.ref = "android-gradle-plugin" }
android-library = { id = "com.android.library", version.ref = "android-gradle-plugin" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
sonarqube = { id = "org.sonarqube", version = "5.0.0.4638" }
ktlint = { id = "org.jlleitschuh.gradle.ktlint", version = "12.1.1" }
ksp = { id = "com.google.devtools.ksp", version = "1.9.23-1.0.20" }
roborazzi = { id = "io.github.takahirom.roborazzi", version.ref = "roborazzi" }
gms = { id = "com.google.gms.google-services", version = "1" }
[bundles]
logging = ["logging-kotlin", "logging-slf"]
kotest = ["kotest-runner", "kotest-assertions", "kotest-parametrizedtests", "kotest-koin"]
koin = ["koin-core", "koin-annotations", "koin-ksp-compiler"]
androidx-test = ["androidx-test-junit-ktx", "androidx-test-rules", "androidx-test-runner"]
screenshotTests = ["androiduitestingutils-utils", "androiduitestingutils-robolectric", "roboelectric", "roborazzi", "roborazzi-junit", "junit-vintage-engine"]

View file

@ -0,0 +1,24 @@
pluginManagement {
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}
dependencyResolutionManagement {
versionCatalogs {
create("libs") {
from(files("libs.versions.toml"))
}
}
}
plugins {
id("org.gradle.toolchains.foojay-resolver-convention") version ("0.8.0")
}
rootProject.name = "gauguin"
include(":gauguin-app")
include(":gauguin-core")