问题标签 [gradle-kotlin-dsl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1833 浏览

intellij-idea - 如何在 IntelliJ 中更改默认的 Gradle 包装器和构建文件?

我正在尝试为我的所有 IntelliJ/Kotlin 项目从 vanilla Gradle切换到Gradle Kotlin DSL 。这需要我distributionUrl在构建文件的 Gradle 包装器任务中指定属性。但是,每当我创建一个 Gradle 项目并选择“默认 Gradle 包装器”选项时,IntelliJ 会自动生成一个普通的 Gradle 4.0 版(至少现在)包装器并使用它构建项目。这不仅会在我的机器上安装一个未使用的 Gradle 发行版,并且让我不得不手动重新创建构建文件和包装器,而且 Gradle 4.0 也不兼容 Java 9。

有什么方法可以更改 IntelliJ 生成的默认 Gradle 包装器/构建文件,因为我在 Gradle 插件的设置选项卡中没有看到包装器配置选项?

0 投票
1 回答
13621 浏览

groovy - Convert an existing groovy build.gradle file into a kotlin based build.gradle.kts

my project has two different build.gradle files written with groovy Syntax. I´d like to change this groovy written gradle file into a gradle file written with Kotlin Syntax (build.gradle.kts).

I´ll show you the root project build.gradle file.

I tried several "ways" i found in the internet, but nothing worked. Renaming the file, which is obviously not the Solution, didn´t help. I´ve created a new build.gradle.kts file in my root project but the file isn´t shown in my project. Also gradle didn´t recognize the new file.

So my question is: How can i transform my groovy build.gradle file into a kotlin build.gradle.kts and add this new file into my existing project?

Thanks for your help.

0 投票
1 回答
821 浏览

gradle - 使用 gradle kotlin-dsl 覆盖 spring boot 依赖版本

SpringBoot 带有许多依赖项以及它们的默认版本。在 groovy-gradle 中,这样的依赖版本可以被覆盖:

但这不适用于 kotlin-dsl。我试过了:

后两个,不要编译,第一个,不工作。

如何在 kotlin 文件中覆盖版本(如果可能的话,我不想创建单独的属性文件)。

0 投票
6 回答
16430 浏览

gradle - Gradle Kotlin DSL:在独特的地方定义 Kotlin 版本

为了描述 Gradle 构建脚本,我们可以通过build.gradle.kts文件使用 Kotlin。在构建部分和构建部分中全局定义要使用Kotlin 版本是一个常见问题(在给定情况下使用不同版本是相当罕见的)。dependenciesplugin

考虑以下代码(Gradle 4.3.1):

如您所见,kotlin version(在本例中为 1.2.30)定义了两次:dependencyVersionpluginVersion,它们通常没有区别。由于 DSL 限制,无法pluginVersion从块外plugins访问或dependencyVersion从块内访问plugins

如何将版本字符串"1.2.30"提取到一个地方?

0 投票
2 回答
11167 浏览

gradle-kotlin-dsl - 无法在插件块中使用项目额外属性

我有一个多项目构建,而且我经常发现自己锁定了所有版本的工件。所以在我的根项目中,我定义了类似的东西:

虽然我可以pkgVersions在任何地方使用,包括其他子项目:

我无法在插件块内这样做:

给我错误“隐式接收器在此上下文中无法调用 pkgVersions。如果需要,请使用显式接收器”。我假设这是因为隐式接收器可能应该是文件的 JVM 印象?但相反,它正在使用PluginDependencySpec. this@尝试使用仅显示的自动完成this@plugin。这只是我的一个长期猜测。但是,关于我应该做什么的任何指示?

此外,当我们这样做时,有没有办法在 中创建全局类型gradle-kotlin-dsl例如:

并且在不使用的情况下随处可用buildSrc?它非常简单,buildSrc我不介意使用它,但只是想知道。

0 投票
2 回答
766 浏览

gradle - Kotlin 无法将 gradle 的 Action 类转换为 lambda

因此,虽然这对于 gradle 特定问题来说是一个相当大的 kotlin-dsl,但我认为它总体上适用于 kotlin 语言本身,所以我不打算使用该标签。

在 gradle API 中,类Action<T>定义为:

所以理想情况下,这应该在 kotlin 中工作(因为它是一个带有 SAM 的类):

但我收到以下两个错误:

Fwiw,甚至Action<String> = { input: String -> ... }不起作用。

现在这是真正有趣的部分。如果我在 IntelliJ 中执行以下操作(顺便说一句,有效):

IntelliJ 弹出建议Convert to lambda,当我这样做时,我得到:

哪个更好,但it仍未解决。现在指定它:

给出以下错误Could not infer type for inputExpected no parameters. 有人可以帮我解决发生了什么吗?

0 投票
1 回答
625 浏览

gradle - 使用 kotlin dsl 在 gradle build 脚本中配置 swagger

我正在尝试在构建脚本中将我的简单项目从 Groovy 切换到 Kotlin。我正在使用这个插件: https ://github.com/gigaSproule/swagger-gradle-plugin 我的构建脚本中有这个配置:

在这种情况下我应该参考哪里?我应该做类似的事情吗?

这对我来说不是很熟悉。谢谢。

0 投票
1 回答
1920 浏览

android - gradle-kotlin-dsl 中的 Android productFlavors

我在一个 android 项目中试验了 gradle-kotlin-dsl。我设法让它工作,但我被困在如何定义productFlavors

经过一番调查,我得到了解决方案,只需使用以下create方法:

0 投票
4 回答
26510 浏览

gradle - 如何使用 kotlinscript DSL (build.gradle.kts) 通过 url 添加 maven 存储库

build.gradle版本中的以下代码片段的等价物是什么build.gradle.kts

0 投票
1 回答
7278 浏览

gradle - 应用插件的不同方法?(Gradle Kotlin DSL)

试图将这个项目的构建迁移到 GSK。我们在 Groovy 中有这个:

因此,在弄清楚如何在 Kotlin 中访问插件约定时,我发现:

但如果你这样做:

应用插件并且约定变得可访问

什么?