问题标签 [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 回答
125 浏览

gradle - 如何在 gradle kotlin DSL 中配置 gradle 规则库模型插件?

我正在使用play-application插件,它又使用基于 gradle 规则的模型配置。build.gradle.kts看起来像这样:

其中 play_setup.gradle 是:

有没有办法停止对使用基于规则的模型制作的插件使用 groovy 并直接通过 kotlin-DSL 配置它们?

0 投票
2 回答
2111 浏览

java - 使用 Kotlin Gradle DSL 向 Kotlin 项目添加集成测试

我想向包含集成测试的 Kotlin 项目添加一个额外的“源集”。我看过一些帖子,它们谈论为普通 Java 项目或 Kotlin 使用 Groovy 而不是 Kotlin Gradle DSL。

总之,使用 Kotlin Gradle DSL:

  • 如何添加可以包含 Kotlin 代码、Java 代码和资源的附加“源集”,以便将集成测试与常规单元测试分开?
  • 如何添加额外的任务和配置以独立于单元测试运行集成测试?

我希望目录结构看起来像:

有关的:

谢谢

0 投票
6 回答
425 浏览

android - 无法导入项目“FirebaseUI-Android”

我尝试通过导入项目向导导入,没有用。该项目使用 Gradle Kotlin DSL。我正在使用 Android Studio 3.1.4。

我尝试跑步gradle idea并收到此消息

当他们迁移到 Kotlin DSL 时,推荐的导入这个项目的方法是什么?

这已在GitHub Repository上报告。我仍然有导入问题。

关于使用 Android Studio 导入项目的注意事项:使用“版本控制中的项目”不会自动将项目与 Gradle 链接(问题 #1349)。这样做并打开任何 build.gradle.kts 文件时,会出现错误:Project 'FirebaseUI-Android' is not linked with Gradle。要解决此问题,请手动 git checkout 项目并使用 Import from external model 导入。

问题截图

0 投票
2 回答
531 浏览

gradle - Kotlin gradle 脚本设置

我正在尝试编译简单的 Kotlin Gradle 脚本。我在 Idea 中使用 build.gradle.kts 创建了一个项目,内容如下:

它的灵感来自 gradle/kotlin-dsl 存储库中的复制示例,它既不是从 IDE 也不是终端中的 gradlew 编译。它给了我这些错误:

也许我错过了某种要包含的插件?我怎么做?

0 投票
1 回答
285 浏览

android - 无法解析插件工件 o.fabric:io.fabric.gradle.plugin Kotlin DSL

尝试构建项目时出现以下错误。唯一的区别是 gradle 脚本在 Kotlin DSL 中。

下面是我的整个 build.gradle.kts 文件

https://gist.github.com/nksaroj/483f3f07df8e04c72040ea4c055459d6

或者https://github.com/nksaroj/xDemo是完整的项目。

0 投票
1 回答
3244 浏览

gradle - Kotlin DSL:将 versions.gradle.kts 导入另一个 build.gradle.kts

我创建了一个versions.gradle.kts这样的:

现在我想像这样导入和使用这些文件:

我怎样才能做到这一点?

注意:我已经看过这篇文章,但并不完全是我搜索的......

0 投票
0 回答
458 浏览

gradle - 当我引入一个不相关的自定义任务时,为什么这个 gradle buildscript (kotlin dsl) 无法编译?

所以我一直在玩 gradle 的 kotlin dsl,我的 buildscript 已经发展到我想引入自定义任务以更好地组织的地步。

这是我的MWEbuild.gradle.kts

没有任务配置的输出./gradlew debug traverseDir(意思是注释目录分配):

带有任务配置的输出./gradlew debug traverseDir(意味着未注释的目录分配):

这两个任务彼此没有联系(除了它们在同一个构建脚本文件中定义),但是当我尝试配置我的自定义任务的实例(即取消注释该dir = ...行)时,构建失败,因为脚本编译错误- 看似无关的 - traverseDir 函数。

进一步的怪异:

  • dir如果我重命名任何一个变量(即为),则不会发生错误dir_- 然后构建成功。
  • 将行更改dir = dir.parentFiledir = dir?.parentFile使构建成功。

为什么会这样?


输出./gradlew --version


更新

这似乎是一个错误,我在以下方面创建了问题:

0 投票
1 回答
1479 浏览

android - 使用 gradle kotlin dsl 时未解决的参考 kotlintest

这是我的build.gradle.kts

构建它时./gradlew build没有发生错误,但如果我使用文档中的指定代码:

我收到以下错误:Task with name 'test' not found in project ':app'.

我的settings.gradle.kts

有谁知道这里发生了什么?奇怪的是 AS 可以建议我自动完成,但在编译时,我得到了这个未解决的参考。

0 投票
2 回答
4410 浏览

gradle - 如何有效地填充 Gradle Kotlin DSL 中的额外属性?

我正在将Gradle构建脚本从Groovy迁移到Kotlin DSL,其中没有真正记录的事情之一是如何填充额外的属性

Groovy中,我可以写:

我发现在Kotlin DSL中,我可以通过以下方式实现相同的功能:

这看起来很重复。

Kotlin中实现ExtraPropertiesExtension有点复杂,但最后,它只是简单的 old 。Map<String, Object>

所以,我的问题是:是否可以extra更容易地填充具有多个属性的对象,而不仅仅是重复val myProp by extra { "myValue"}

0 投票
1 回答
695 浏览

gradle - 如何从 Kotlin DSL gradle 脚本中的插件访问属性?

我有一个使用此插件的 kts gradle buildscript 。

该插件将project.version属性设置为字符串并添加一些附加属性:

虽然 version 属性是一个字符串,但它确实公开了一些额外的属性。它们是snapshotmajorminorpatchpreRelease

现在,我如何访问这些属性build.gradle.kts

val major = project.version.major as Integer由于 Kotlin 是静态类型的,因此尝试总是失败:

未解决的参考:主要

有什么方法可以访问这些属性,还是我必须回到基于 groovy 的gradle.build构建脚本?