问题标签 [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.
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 插件的设置选项卡中没有看到包装器配置选项?
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.
gradle - 使用 gradle kotlin-dsl 覆盖 spring boot 依赖版本
SpringBoot 带有许多依赖项以及它们的默认版本。在 groovy-gradle 中,这样的依赖版本可以被覆盖:
但这不适用于 kotlin-dsl。我试过了:
后两个,不要编译,第一个,不工作。
如何在 kotlin 文件中覆盖版本(如果可能的话,我不想创建单独的属性文件)。
gradle - Gradle Kotlin DSL:在独特的地方定义 Kotlin 版本
为了描述 Gradle 构建脚本,我们可以通过build.gradle.kts
文件使用 Kotlin。在构建部分和构建部分中全局定义要使用的Kotlin 版本是一个常见问题(在给定情况下使用不同版本是相当罕见的)。dependencies
plugin
考虑以下代码(Gradle 4.3.1):
如您所见,kotlin version
(在本例中为 1.2.30)定义了两次:dependencyVersion
和pluginVersion
,它们通常没有区别。由于 DSL 限制,无法pluginVersion
从块外plugins
访问或dependencyVersion
从块内访问plugins
。
如何将版本字符串"1.2.30"
提取到一个地方?
gradle-kotlin-dsl - 无法在插件块中使用项目额外属性
我有一个多项目构建,而且我经常发现自己锁定了所有版本的工件。所以在我的根项目中,我定义了类似的东西:
虽然我可以pkgVersions
在任何地方使用,包括其他子项目:
我无法在插件块内这样做:
给我错误“隐式接收器在此上下文中无法调用 pkgVersions。如果需要,请使用显式接收器”。我假设这是因为隐式接收器可能应该是文件的 JVM 印象?但相反,它正在使用PluginDependencySpec
. this@
尝试使用仅显示的自动完成this@plugin
。这只是我的一个长期猜测。但是,关于我应该做什么的任何指示?
此外,当我们这样做时,有没有办法在 中创建全局类型,gradle-kotlin-dsl
例如:
并且在不使用的情况下随处可用buildSrc
?它非常简单,buildSrc
我不介意使用它,但只是想知道。
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 input
和Expected no parameters
. 有人可以帮我解决发生了什么吗?
gradle - 使用 kotlin dsl 在 gradle build 脚本中配置 swagger
我正在尝试在构建脚本中将我的简单项目从 Groovy 切换到 Kotlin。我正在使用这个插件: https ://github.com/gigaSproule/swagger-gradle-plugin 我的构建脚本中有这个配置:
在这种情况下我应该参考哪里?我应该做类似的事情吗?
这对我来说不是很熟悉。谢谢。
android - gradle-kotlin-dsl 中的 Android productFlavors
我在一个 android 项目中试验了 gradle-kotlin-dsl。我设法让它工作,但我被困在如何定义productFlavors
经过一番调查,我得到了解决方案,只需使用以下create
方法:
gradle - 如何使用 kotlinscript DSL (build.gradle.kts) 通过 url 添加 maven 存储库
build.gradle
版本中的以下代码片段的等价物是什么build.gradle.kts
?
gradle - 应用插件的不同方法?(Gradle Kotlin DSL)
试图将这个项目的构建迁移到 GSK。我们在 Groovy 中有这个:
因此,在弄清楚如何在 Kotlin 中访问插件约定时,我发现:
但如果你这样做:
应用插件并且约定变得可访问
什么?