我正在使用一个buildSrc
多模块 Kotlin 项目中的模块管理依赖项定义和版本 https://handstandsam.com/2018/02/11/kotlin-buildsrc-for-better-gradle-dependency-management/。该模块利用kotlin-dsl https://github.com/gradle/kotlin-dsl如图所示构建.gradle.kts:
plugins {
`kotlin-dsl`
}
替代声明:
plugins {
id("org.gradle.kotlin.kotlin-dsl") version "0.16.2"
}
我想使用相同的 Kotlin 版本来编译buildSrc
模块以及应用程序模块内。我的第一次尝试是简单地添加 JVM 工件:
plugins {
`kotlin-dsl`
kotlin("jvm") version "1.2.31"
}
然而,这会导致构建错误,对此进行了讨论here https://github.com/gradle/kotlin-dsl/issues/520:
解析插件时出错 [id: 'org.jetbrains.kotlin.jvm', 版本: '1.2.31']
对已位于类路径上的插件的插件请求不得包含版本
有什么方便的方法只能定义一次整个项目使用的 Kotlin 版本?
Related
- Gradle Kotlin DSL:在独特的位置定义 Kotlin 版本 https://stackoverflow.com/questions/47588311/gradle-kotlin-dsl-define-kotlin-version-in-unique-place
- Kotlin 版本和 Gradle Kotlin DSL https://github.com/gradle/kotlin-dsl/blob/master/doc/getting-started/Kotlin-Versions.md
- 示例项目:Multi-kotlin-project-with-buildSrc https://github.com/gradle/kotlin-dsl/tree/master/samples/multi-kotlin-project-with-buildSrc
我知道的唯一方法是将其放入 gradle.properties (或任何其他配置)并在 settings.gradle.kts 中读取它pluginManagement
。像这样:
pluginManagement {
repositories {
gradlePluginPortal()
}
resolutionStrategy {
eachPlugin {
if (requested.id.id.startsWith("org.jetbrains.kotlin")) {
useVersion(gradle.rootProject.extra["kotlin.version"] as String)
}
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)