首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为buildSrc和应用程序模块定义Kotlin版本?

如何为buildSrc和应用程序模块定义Kotlin版本?
EN

Stack Overflow用户
提问于 2018-03-27 20:50:25
回答 3查看 5.7K关注 0票数 9

我在一个多模块的Kotlin项目中使用buildSrc模块到管理依赖项定义和版本。该模块使用kotlin-dsl,如build.gradle.kts中所示

代码语言:javascript
复制
plugins {
    `kotlin-dsl`
}

备选声明:

代码语言:javascript
复制
plugins {
    id("org.gradle.kotlin.kotlin-dsl") version "0.16.2"
}

我想使用相同的Kotlin版本编译buildSrc模块以及应用程序模块/s。

代码语言:javascript
复制
plugins {
    `kotlin-dsl`
    kotlin("jvm") version "1.2.31"
}

然而,这会导致一个构建错误,这是讨论这里的。

解析插件id错误:'org.jetbrains.kotlin.jvm',版本:'1.2.31‘ 已经在类路径上的插件请求不能包含版本。

在整个项目中使用的Kotlin版本一旦使用,什么是只定义的方便方法?

相关

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-04-26 09:43:37

每个Gradle版本都要与特定版本的kotlin-dsl插件一起使用,并且不能保证任意Gradle版本和kotlin-dsl插件版本之间的兼容性。 在构建中使用kotlin-dsl插件的意外版本可能会导致很难诊断问题。 从Gradle 5.4开始,每当检测到意外版本的kotlin-dsl插件时,就会发出警告。

Paul Merlin @eskatos,25.04.2019

因此,我删除了 the version

代码语言:javascript
复制
plugins {
    `kotlin-dsl`
}

repositories {
    mavenCentral()
}
票数 4
EN

Stack Overflow用户

发布于 2018-04-09 22:12:23

我知道的唯一方法是将它放入gradle.properties (或任何其他配置)中,并在settings.gradle.kts pluginManagement中读取它。如下所示:

代码语言:javascript
复制
pluginManagement {
    repositories {
        gradlePluginPortal()
    }
    resolutionStrategy {
        eachPlugin {
            if (requested.id.id.startsWith("org.jetbrains.kotlin")) {
                useVersion(gradle.rootProject.extra["kotlin.version"] as String)
            }
        }
    }
}
票数 3
EN

Stack Overflow用户

发布于 2018-04-10 10:28:28

错误说明了自己:如果您已经在plugins块中指定插件版本,则无法在buildscript文件夹中指定插件的版本。

您可以将kotlinVersion放入gradle.properties中,并将符号链接buildSrc/gradle.propeties放到./gradle.properties中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49522180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档