Android - Gradle - неразрешенная ссылка: версия CatalogsextensionAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Android - Gradle - неразрешенная ссылка: версия Catalogsextension

Сообщение Anonymous »

Я пытаюсь использовать gradle versioncatalogs и разместить все версии, включая Android-специфические компилированные данные , minsdkversion , targetsdkversion .
Возможно получить доступ к этим версиям следующим кодом:

.

Код: Выделить всё

val libs = rootProject.extensions.getByType(VersionCatalogsExtension::class.java).named("libs")
libs.findVersion("compileSdkVersion").get().toString() as Integer
< /code>
Но мой проект многомодуль, и я не хочу копировать код вставки. Итак, я создал функции расширения в отдельном модуле.includeBuild("gradle-dependencies")
build.grable.gradle.kts :

Код: Выделить всё

plugins {
`kotlin-dsl`
`java-gradle-plugin`
}

repositories {
gradlePluginPortal()
google()
mavenCentral()
}

group = "com.foobar.androidtools.gradle"
version = "SNAPSHOT"

dependencies {
implementation(gradleApi())
}

gradlePlugin {
plugins.register("Gradle extensions") {
id = "foobar-gradle-dependencies"
implementationClass = "com.foobar.gradle_dependencies.DependenciesPlugin"
}
}
src/main/kotlin/com/foobar/gradle_dependencies/extensions.kt:

Код: Выделить всё

package com.foobar.gradle_dependencies

import org.gradle.api.Project
import org.gradle.api.artifacts.VersionCatalogsExtension
import org.gradle.kotlin.dsl.getByType

fun Project.version(key: String): String = this.extensions
.getByType()
.named("libs")
.findVersion(key)
.get()
.requiredVersion

fun Project.versionInt(key: String) = version(key).toInt()

val Project.KOTLIN_JVM_TARGET_VERSION get() = version("kotlinJvmTargetVersion")
val Project.ANDROID_COMPILE_SDK_VERSION get() = versionInt("compileSdkVersion")
val Project.ANDROID_MIN_SDK_VERSION get() = versionInt("minSdkVersion")
val Project.ANDROID_TARGET_SDK_VERSION get() = versionInt("targetSdkVersion")
< /code>
Попытка создать проект, я вижу следующую ошибку: < /p>
e: /AndroidTools/gradle-dependencies/src/main/kotlin/com/foobar/gradle_dependencies/Extensions.kt: (4, 33): Unresolved reference: VersionCatalogsExtension
Почему зависимость не может быть решена с учетом того, что импорт работает нормально?>

Подробнее здесь: https://stackoverflow.com/questions/719 ... sextension
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»