From ced03b82de6d7ca3ec78f15be6e26a44d9a46210 Mon Sep 17 00:00:00 2001 From: Niels van Velzen Date: Sun, 19 Dec 2021 14:44:28 +0100 Subject: [PATCH] Move Gradle plugins to plugin catalog (#1296) * Move Gradle plugins to plugin catalog * Fix linter config for playback module --- app/build.gradle.kts | 5 ++- build.gradle.kts | 15 ++------- buildSrc/src/main/kotlin/Dependencies.kt | 41 ------------------------ gradle.properties | 2 +- gradle/libs.versions.toml | 20 +++++++++--- playback/build.gradle.kts | 11 +++++-- settings.gradle.kts | 36 +++++++++++++++++++++ 7 files changed, 65 insertions(+), 65 deletions(-) delete mode 100644 buildSrc/src/main/kotlin/Dependencies.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index ce68fe9f6..d0ed30ec0 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,16 +1,15 @@ plugins { id("com.android.application") kotlin("android") - kotlin("plugin.serialization") version Plugins.Versions.kotlin kotlin("kapt") - id("com.mikepenz.aboutlibraries.plugin") + alias(libs.plugins.kotlin.serialization) + alias(libs.plugins.aboutlibraries) } android { compileSdk = 30 defaultConfig { - // Android version targets minSdk = 21 targetSdk = 30 diff --git a/build.gradle.kts b/build.gradle.kts index 0b465b69b..fb3d839e0 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,23 +1,14 @@ plugins { - id("io.gitlab.arturbosch.detekt").version(Plugins.Versions.detekt) -} - -allprojects { - repositories.defaultRepositories() + alias(libs.plugins.detekt) } buildscript { - repositories.defaultRepositories() - dependencies { - classpath(Plugins.androidBuildTools) - classpath(Plugins.kotlin) - classpath(Plugins.aboutLibraries) + classpath(libs.android.gradle) + classpath(libs.kotlin.gradle) } } - -// Detekt configuration subprojects { apply() diff --git a/buildSrc/src/main/kotlin/Dependencies.kt b/buildSrc/src/main/kotlin/Dependencies.kt deleted file mode 100644 index c6e0d7ec0..000000000 --- a/buildSrc/src/main/kotlin/Dependencies.kt +++ /dev/null @@ -1,41 +0,0 @@ -import org.gradle.api.artifacts.dsl.RepositoryHandler -import org.gradle.kotlin.dsl.maven - -fun RepositoryHandler.defaultRepositories() { - mavenCentral() - google() - - // Jellyfin SDK - mavenLocal { - content { - includeVersionByRegex("org.jellyfin.sdk", ".*", "latest-SNAPSHOT") - } - } - maven("https://s01.oss.sonatype.org/content/repositories/snapshots/") { - content { - includeVersionByRegex("org.jellyfin.sdk", ".*", "master-SNAPSHOT") - includeVersionByRegex("org.jellyfin.sdk", ".*", "openapi-unstable-SNAPSHOT") - } - } - - // Jellyfin apiclient - maven("https://jitpack.io") { - content { - // Only allow legacy apiclient - includeVersionByRegex("com.github.jellyfin.jellyfin-sdk-kotlin", ".*", "v0.7.10") - } - } -} - -object Plugins { - object Versions { - const val kotlin = "1.5.10" - const val detekt = "1.17.1" - const val androidBuildTools = "7.0.2" - const val aboutlibraries = "8.9.3" - } - - const val kotlin = "org.jetbrains.kotlin:kotlin-gradle-plugin:${Versions.kotlin}" - const val androidBuildTools = "com.android.tools.build:gradle:${Versions.androidBuildTools}" - const val aboutLibraries = "com.mikepenz.aboutlibraries.plugin:aboutlibraries-plugin:${Versions.aboutlibraries}" -} diff --git a/gradle.properties b/gradle.properties index c1b171de3..ba90ffbff 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ # Gradle -org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m +org.gradle.jvmargs=-Xmx2048m # Allow switching between flavors of the Jellyfin SDK. Possible values are: # - "default" diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c23b58d40..0d2645ba0 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,13 +1,21 @@ [versions] -kotlinx-coroutines = "1.4.3" -kotlinx-serialization = "1.1.0" +aboutlibraries = "8.9.4" +acra = "5.8.4" +android-gradle = "7.0.4" androidx-leanback = "1.1.0-beta01" androidx-lifecycle = "2.3.1" androidx-startup = "1.1.0" -koin = "3.1.2" +detekt = "1.18.1" glide = "4.12.0" -acra = "5.8.4" -aboutlibraries = "8.9.3" +koin = "3.1.2" +kotlin = "1.6.10" +kotlinx-coroutines = "1.4.3" +kotlinx-serialization = "1.1.0" + +[plugins] +aboutlibraries = { id = "com.mikepenz.aboutlibraries.plugin", version.ref = "aboutlibraries" } +detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" } +kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } [libraries] # Jellyfin apiclient @@ -16,10 +24,12 @@ jellyfin-apiclient = { module = "com.github.jellyfin.jellyfin-sdk-kotlin:android jellyfin-sdk = { module = "org.jellyfin.sdk:jellyfin-core", version = "1.1.0" } # Kotlin +kotlin-gradle = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } kotlinx-coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "kotlinx-coroutines" } kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinx-serialization" } # Android(x) +android-gradle = { module = "com.android.tools.build:gradle", version.ref = "android-gradle" } androidx-core = { module = "androidx.core:core-ktx", version = "1.3.2" } androidx-activity = { module = "androidx.activity:activity-ktx", version = "1.2.2" } androidx-fragment = { module = "androidx.fragment:fragment-ktx", version = "1.3.2" } diff --git a/playback/build.gradle.kts b/playback/build.gradle.kts index 00756d296..1f4607004 100644 --- a/playback/build.gradle.kts +++ b/playback/build.gradle.kts @@ -4,11 +4,11 @@ plugins { } android { - compileSdkVersion(30) + compileSdk = 30 defaultConfig { - minSdkVersion(21) - targetSdkVersion(30) + minSdk = 21 + targetSdk = 30 } buildFeatures { @@ -17,6 +17,11 @@ android { sourceSets["main"].java.srcDirs("src/main/kotlin") sourceSets["test"].java.srcDirs("src/test/kotlin") + + lint { + lintConfig = file("$rootDir/android-lint.xml") + isAbortOnError = false + } } dependencies { diff --git a/settings.gradle.kts b/settings.gradle.kts index b932421e7..0122516c5 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -6,3 +6,39 @@ include(":app") // Modules include(":playback") + +pluginManagement { + repositories { + gradlePluginPortal() + mavenCentral() + google() + } +} + +dependencyResolutionManagement { + repositories { + mavenCentral() + google() + + // Jellyfin SDK + mavenLocal { + content { + includeVersionByRegex("org.jellyfin.sdk", ".*", "latest-SNAPSHOT") + } + } + maven("https://s01.oss.sonatype.org/content/repositories/snapshots/") { + content { + includeVersionByRegex("org.jellyfin.sdk", ".*", "master-SNAPSHOT") + includeVersionByRegex("org.jellyfin.sdk", ".*", "openapi-unstable-SNAPSHOT") + } + } + + // Jellyfin apiclient + maven("https://jitpack.io") { + content { + // Only allow legacy apiclient + includeVersionByRegex("com.github.jellyfin.jellyfin-sdk-kotlin", ".*", "v0.7.10") + } + } + } +}