У меня есть многомодульный проект Android (с различными типами модулей: библиотеки, приложения, простой Java). В скрипте root Gradle я включил плагины Android Application и Android Library в моем классе (с суффиксом «применить: false»), так как они мне нужны (например, они используются ktlint и другими плагинами). Теперь у меня есть модуль приложений, которому нужен Kotlin 2.1.0, в то время как остальная часть проекта нуждается и использует Kotlin 1.9.20. Если я применяю плагин Kotlin 2.1.0 в скрипте модуля (в его плагинах блоке), я получаю ошибку, что плагин не может быть разрешен, потому что он уже находится в классе с другой версией (1.9.20):
Error resolving plugin [id: 'org.jetbrains.kotlin.android', version: '2.1.0']
> The request for this plugin could not be satisfied because the plugin is already on the classpath with a different version (1.9.20).
Есть ли способ получить эту работу (без отсоединения модуля от проекта/репозитория)?
У меня есть эти параметры.pluginManagement {
repositories {
mavenLocal()
google()
mavenCentral()
gradlePluginPortal()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenLocal()
google()
mavenCentral()
}
}
rootProject.name = "my-project"
include(":sdk")
include(":api")
include(":apps:test")
include(":shared")
// rest of the modules and script
< /code>
and this build.gradle.kts (in root): < /p>
import org.jlleitschuh.gradle.ktlint.KtlintExtension
import org.jlleitschuh.gradle.ktlint.reporter.ReporterType
plugins {
alias(libs.plugins.kotlin.android) apply false
alias(libs.plugins.kotlin.jvm) apply false
alias(libs.plugins.kotlin.serialization) apply false
alias(libs.plugins.kotlin.parcelize) apply false
alias(libs.plugins.android.library) apply false
alias(libs.plugins.android.application) apply false
alias(libs.plugins.android.dynamic.feature) apply false
alias(libs.plugins.test.android.junit5) apply false
alias(libs.plugins.apiChecker) apply false
alias(libs.plugins.detekt)
alias(libs.plugins.ktlint)
alias(libs.plugins.jacoco)
}
apply(from = "jacoco.gradle.kts")
jacoco {
toolVersion = libs.versions.jacoco.get()
}
detekt {
// detekt config
}
< /code>
Вот сценарий сборки модуля приложения: < /p>
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android.v2)
alias(libs.plugins.kotlin.serialization)
alias(libs.plugins.kotlin.parcelize)
}
< /code>
Соответствующая часть моего каталога моей версии: < /p>
kotlin = "1.9.20"
kotlin-v2 = "2.1.0"
[plugins]
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin-v2" }
Подробнее здесь: https://stackoverflow.com/questions/795 ... le-project
Используйте разные версии Kotlin в одном проекте ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1743618502
Anonymous
У меня есть многомодульный проект Android (с различными типами модулей: библиотеки, приложения, простой Java). В скрипте root Gradle я включил плагины Android Application и Android Library в моем классе (с суффиксом «применить: false»), так как они мне нужны (например, они используются ktlint и другими плагинами). Теперь у меня есть модуль приложений, которому нужен Kotlin 2.1.0, в то время как остальная часть проекта нуждается и использует Kotlin 1.9.20. Если я применяю плагин Kotlin 2.1.0 в скрипте модуля (в его плагинах блоке), я получаю ошибку, что плагин не может быть разрешен, потому что он уже находится в классе с другой версией (1.9.20):
Error resolving plugin [id: 'org.jetbrains.kotlin.android', version: '2.1.0']
> The request for this plugin could not be satisfied because the plugin is already on the classpath with a different version (1.9.20).
Есть ли способ получить эту работу (без отсоединения модуля от проекта/репозитория)?
У меня есть эти параметры.pluginManagement {
repositories {
mavenLocal()
google()
mavenCentral()
gradlePluginPortal()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenLocal()
google()
mavenCentral()
}
}
rootProject.name = "my-project"
include(":sdk")
include(":api")
include(":apps:test")
include(":shared")
// rest of the modules and script
< /code>
and this build.gradle.kts (in root): < /p>
import org.jlleitschuh.gradle.ktlint.KtlintExtension
import org.jlleitschuh.gradle.ktlint.reporter.ReporterType
plugins {
alias(libs.plugins.kotlin.android) apply false
alias(libs.plugins.kotlin.jvm) apply false
alias(libs.plugins.kotlin.serialization) apply false
alias(libs.plugins.kotlin.parcelize) apply false
alias(libs.plugins.android.library) apply false
alias(libs.plugins.android.application) apply false
alias(libs.plugins.android.dynamic.feature) apply false
alias(libs.plugins.test.android.junit5) apply false
alias(libs.plugins.apiChecker) apply false
alias(libs.plugins.detekt)
alias(libs.plugins.ktlint)
alias(libs.plugins.jacoco)
}
apply(from = "jacoco.gradle.kts")
jacoco {
toolVersion = libs.versions.jacoco.get()
}
detekt {
// detekt config
}
< /code>
Вот сценарий сборки модуля приложения: < /p>
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android.v2)
alias(libs.plugins.kotlin.serialization)
alias(libs.plugins.kotlin.parcelize)
}
< /code>
Соответствующая часть моего каталога моей версии: < /p>
kotlin = "1.9.20"
kotlin-v2 = "2.1.0"
[plugins]
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin-v2" }
Подробнее здесь: [url]https://stackoverflow.com/questions/79551315/use-different-versions-of-kotlin-in-a-single-project[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия