问题标签 [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.
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 包装器等)以消除这些标记而没有任何成功。以下是一些附带问题:
- 我究竟做错了什么?我应该怎么做才能去除那些红色标记?
- 虽然我喜欢这种方法,但我会很想念的一件事是 gradle 文件中过时的依赖项检查突出显示,这表明该库有一个新的 xyx 版本。有没有办法让它与这种方法一起工作?
- 有没有办法在 buildSrc Kotlin 类中使用gradle 项目属性?例如,使用属性文件(例如version.properties)和 gradle 属性非常常见,这
rootDir
对于获取它们的路径非常有帮助。我们可以Paths.get("").toAbsolutePath().toString()
为此目的使用,但这不是一个干净的解决方案。 - 您一般如何看待这种方法?
gradle - 如何为 buildSrc 和应用程序模块定义 Kotlin 版本?
我buildSrc
在多模块 Kotlin 项目中使用一个模块来管理依赖项定义和版本。该模块使用kotlin-dsl,如build.gradle.kts所示:
替代声明:
我想使用相同的 Kotlin 版本来编译buildSrc
模块以及在应用程序模块中。我的第一次尝试是简单地添加 JVM 工件:
然而,这会导致构建错误,这里讨论:
解析插件时出错 [id: 'org.jetbrains.kotlin.jvm', version: '1.2.31']
已在类路径上的插件的插件请求不得包含版本
什么是只定义一次在整个项目中使用的 Kotlin 版本的便捷方法?
有关的
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 上完成项目。
gradle - 命令行 gradle 运行成功时,IDEA 报告 build.gradle.kts 中的错误
我正在使用带有 Gradle 构建工具的 Kotlin DSL。从命令行运行时,我的 gradle 构建在本地和 jenkins 服务器上运行良好。
然而,IDEA 抱怨并将几个项目标记为红色,并出现以下错误:
- 无法访问类“java.lang.Object”。检查您的模块类路径是否存在缺失或冲突的依赖项
- 不能使用提供的参数调用以下函数
我在项目设置中尝试了所有 3 个选项: - 使用默认 gradle 包装器 - 使用 gradle 'wrapper' 任务配置 - 使用本地 gradle 分发
结果如果差不多
问题:配置中是否有问题,或者是否有修复或解决方法?
.
.
UPD: @tweitzel 你是对的,SDK 设置不正确,谢谢!
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-kotlin-dsl - 将 sourceDir 添加到 java sourceSet
根据 Gradle Kotlin 插件页面。
Kotlin 源代码可以与 Java 源代码混合在同一个文件夹或不同文件夹中。默认约定是使用不同的文件夹。如果不使用默认约定,则应更新相应的 sourceSets 属性。
我想在 src/main/kotlin 中添加一些 Java 文件并让 compileJava 任务编译它们。我试图想出以下块来实现它,但没有骰子。
是什么赋予了?
java - 如何将 JUnit 5 与 build.gradle.kts 和 kotlin 一起使用?
- 爪哇版
java 10.0.1 2018-04-17
- Kotlin 版本
1.2.41
- 摇篮版本
4.7
如果我们可以使用拼图模块系统会更好
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 项目?
gradle-kotlin-dsl - 用兼容的替换替换依赖模块
在 Gradle Groovy DSL 中,您可以按照Gradle 用户手册中的说明轻松地将依赖模块替换为兼容的替代品。你如何在 Gradle Kotlin DSL 中做同样的事情?
gradle - Gradle Kotlin DSL 等效于 Groovy DSL compilerArgs for compileJava
对于 Gradle Java 插件,以下 Groovy DSL 的 Kotlin DSL 等效项是什么?