问题标签 [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 投票
0 回答
881 浏览

android - buildSrc 文件夹来组织一个 Android/Kotlin 项目的依赖项/元数据

根据 Google 建议使用额外属性通过您的项目共享它们,我遇到了一个基于 buildSrc + Kotlin gradle 脚本的 Android/Kotlin 项目的不错的解决方案。与其他经典方法相比,该解决方案为我提供了非常好的优势,即build.gradle每个模块(加上根文件)具有多个 Groovy 写入文件及其依赖项和参数。主要有:

  • 使用 kotlin 语法。
  • 编译错误。
  • 自动完成。
  • 单击支持(导航到定义)
  • 将 gradle 文件元数据信息集中在一个文件中。

查看这篇文章了解更多信息。

如果我没记错的话,Kotlin-dsl 团队成员建议使用 IntelliJ 来实现它,并且与 Android Studio 的集成似乎还没有完全完成,因为我仍然看到一些 Kotlin gradle 脚本代码以红色突出显示。但是,它编译得很好。奇怪的是,如果我克隆例如Prefekt 存储库,我可以build.gradle.kts在 gradle 同步后完美地看到内容而没有红色标记。我几乎在我的项目中完成了所有工作(同步 gradle、使缓存无效、删除缓存、相同的 gradle 包装器等)以消除这些标记而没有任何成功。以下是一些附带问题:

  1. 我究竟做错了什么?我应该怎么做才能去除那些红色标记?
  2. 虽然我喜欢这种方法,但我会很想念的一件事是 gradle 文件中过时的依赖项检查突出显示,这表明该库有一个新的 xyx 版本。有没有办法让它与这种方法一起工作?
  3. 有没有办法在 buildSrc Kotlin 类中使用gradle 项目属性?例如,使用属性文件(例如version.properties)和 gradle 属性非常常见,这rootDir对于获取它们的路径非常有帮助。我们可以Paths.get("").toAbsolutePath().toString()为此目的使用,但这不是一个干净的解决方案。
  4. 您一般如何看待这种方法?
0 投票
3 回答
4950 浏览

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

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

替代声明:

我想使用相同的 Kotlin 版本来编译buildSrc模块以及在应用程序模块中。我的第一次尝试是简单地添加 JVM 工件:

然而,这会导致构建错误,这里讨论:

解析插件时出错 [id: 'org.jetbrains.kotlin.jvm', version: '1.2.31']
已在类路径上的插件的插件请求不得包含版本

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

有关的

0 投票
3 回答
4739 浏览

gradle - 如何使用 Gradle Kotlin DSL 运行 kotlintest 测试?

我想要什么?

我想使用kotlintest运行我的测试,我通过单击测试类旁边的图标成功地从 IntelliJ 运行它们。我的项目中也有JUnit 5测试。我现在开始使用Gradle Kotlin DSL,并且我设法运行了check执行 JUnit 5 任务的 Gradle 任务。

问题是什么?

kotlintest 测试没有运行!Gradle 似乎没有发现它,因为失败的测试让 Gradle 任务成功。所以,

如何在使用 JUnit 5 的同时使用 Gradle Kotlin DSL 运行 kotlintest 测试?

我尝试了什么?

如何使用 gradle 运行 kotlintest 测试?本质上是问题的旧版本,但由于使用不同的技术已经过时:JUnit 4 和 Gradle 而不是 Gradle Kotlin DSL。我能找到的所有其他问题都是针对 JUnit 4 或没有 kotlintest 的 JUnit 5

项目设置

我正在使用 Gradle 4.6。我的测试是

build.gradle.kts的是

PS 在GitHub 上完成项目。

0 投票
1 回答
1748 浏览

gradle - 命令行 gradle 运行成功时,IDEA 报告 build.gradle.kts 中的错误

我正在使用带有 Gradle 构建工具的 Kotlin DSL。从命令行运行时,我的 gradle 构建在本地和 jenkins 服务器上运行良好。

然而,IDEA 抱怨并将几个项目标记为红色,并出现以下错误:

  • 无法访问类“java.lang.Object”。检查您的模块类路径是否存在缺失或冲突的依赖项
  • 不能使用提供的参数调用以下函数

我在项目设置中尝试了所有 3 个选项: - 使用默认 gradle 包装器 - 使用 gradle 'wrapper' 任务配置 - 使用本地 gradle 分发

结果如果差不多

问题:配置中是否有问题,或者是否有修复或解决方法?

.

.

不能使用提供的参数调用以下函数

无法访问类“java.lang.Object”。 检查您的模块类路径是否存在缺失或冲突的依赖项

UPD: @tweitzel 你是对的,SDK 设置不正确,谢谢!

0 投票
2 回答
9702 浏览

gradle - 如何将 Gradle 中的原生 JUnit 5 支持与 Kotlin DSL 结合使用?

我想将内置的 JUnit 5 与 Gradle Kotlin DSL 一起使用,因为在构建期间我收到以下警告:

那个链接告诉我把

在我的build.gradle,但语法是build.gradle.kts什么?

我当前的构建文件是

(以下是一些废话,因为这个问题“主要包含代码”)。我试图找到有关如何在 Kotlin DSL 中自定义任务的文档,但我找不到任何文档。在普通的 Groovy 中,您可以只编写任务的名称,然后更改块中的内容,但 Kotlin DSL 无法识别任务本身,未解析的引用。

此外,这个问题是相关的,但要求创建任务,而不是自定义现有任务:How do I overwrite a task in gradle kotlin-dsl

这是普通 Gradle 的解决方案。

0 投票
1 回答
2316 浏览

gradle-kotlin-dsl - 将 sourceDir 添加到 java sourceSet

根据 Gradle Kotlin 插件页面

Kotlin 源代码可以与 Java 源代码混合在同一个文件夹或不同文件夹中。默认约定是使用不同的文件夹。如果不使用默认约定,则应更新相应的 sourceSets 属性。

我想在 src/main/kotlin 中添加一些 Java 文件并让 compileJava 任务编译它们。我试图想出以下块来实现它,但没有骰子。

是什么赋予了?

0 投票
2 回答
3888 浏览

java - 如何将 JUnit 5 与 build.gradle.kts 和 kotlin 一起使用?

  • 爪哇版 java 10.0.1 2018-04-17
  • Kotlin 版本 1.2.41
  • 摇篮版本4.7

如果我们可以使用拼图模块系统会更好

0 投票
1 回答
1429 浏览

gradle - 使用 Java 9/10 和 Gradle 的 Kotlin DSL 构建 Gradle Kotlin 项目

这是对使用 Gradle 构建 Kotlin + Java 9 项目的一种跟进。在链接的帖子中使用了带有 Groovy 的 Gradle。在我的例子中,使用了 Kotlin DSL。

基本上我有一个具有以下结构的gradle项目(这里只有相关内容):

通常我会在上面运行 gradle run ,但这会导致以下错误:

现在这就是我的构建文件当前的样子

这是我的模块信息.java:

问题:如何运行链接帖子中提供的解决方案(或任何其他解决方案),以便可以使用 Java 9/10 环境编译带有 Gradle 的 Kotlin DSL 的 Kotlin 项目?

0 投票
2 回答
553 浏览

gradle-kotlin-dsl - 用兼容的替换替换依赖模块

在 Gradle Groovy DSL 中,您可以按照Gradle 用户手册中的说明轻松地将依赖模块替换为兼容的替代品。你如何在 Gradle Kotlin DSL 中做同样的事情?

0 投票
1 回答
1555 浏览

gradle - Gradle Kotlin DSL 等效于 Groovy DSL compilerArgs for compileJava

对于 Gradle Java 插件,以下 Groovy DSL 的 Kotlin DSL 等效项是什么?