问题标签 [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.
scala - gradle kotlin DSL scala & 想法
我该如何设置
和
使用 gradle kotlin dsl 构建时来自 scala 插件https://docs.gradle.org/current/userguide/scala_plugin.html ?
debugging - 调试从 IntelliJ 2018.1.4 构建的 Gradle Wrapper 4.7 的 build.gradle.kts
我正在尝试为build.gradle.kts
IntelliJ 2018.1.4 中的 Gradle Wrapper 4.7 Kotlin DSL 构建调试一个。
我跑了:
Gradle 等待调试器附加。
我在整个build.gradle.kts
.
我创建了一个远程调试配置并启动它。
构建运行并完成,没有中断任何断点。
我还尝试从 IntelliJ Gradle 工具窗口的右键菜单中进行调试Tasks/build/build
,但这也只是运行任务并且从未在任何断点处停止。
我该如何调试build.gradle.kts
?
gradle-kotlin-dsl - 定义删除任务时出错
我收到以下 DSL 脚本块的错误。
但我收到以下错误消息。
这是什么错误信息,我该如何解决?
gradle - 在插件块中引用 kotlin gradle 脚本变量
一段时间以来,我一直在使用他们常用的 Groovy 构建脚本 DSL 以多种语言编写 Gradle 插件。最近我想学习如何使用他们的 Kotlin 构建脚本 DSL,但我不太明白一些事情。
我在下面有一个例子:
但是,当我运行像“干净”这样的简单任务时,我收到以下错误:
但是,如果我kotlin_version
用字符串文字替换,它可以正常工作:
但是,如果我dependencies
用 my 参数化块kotlin_version
,它工作得非常好:
为什么不能在plugins
块内引用变量?
gradle - 如何在 Kotlin 中访问 variant.outputFileName
我们一直在使用这样的片段来重命名 Gradle 构建生成的 APK 文件:
来源:https ://developer.android.com/studio/build/gradle-plugin-3-0-0-migration#variant_output
我现在正在将我的转换build.gradle
为build.gradle.kts
,即转换为 Gradle Kotlin DSL。这是最后丢失的部分之一:我不知道如何访问outputFileName
.
根据 API 文档,它甚至似乎不存在:
BaseVariant.getOutputs()
返回DomainObjectCollection<BaseVariantOutput>
提供all
片段中使用的方法的 a。BaseVariantOutput
extendsOutputFile
which extendsVariantOutput
但这些都没有一个outputFileName
或任何匹配名称的 getter 或 setter。
所以,我怀疑有一些高级的 Groovy 魔法在起作用——但是我如何在 Kotlin 中实现呢?
gradle - 如何将 Kotlin 源代码的测试报告上传到 Coveralls?
我想在我的 Travis 构建完成后自动将我的 Jacoco 测试报告上传到工作服。它适用于 Java,但如何为 Kotlin 配置它?
错误信息
我可以在本地和 Travis 上生成 Jacoco 测试报告,但是当 Travis 尝试提交工作服时,它会失败并显示消息
谷歌将我链接到 Gradle 插件实现,它显示了它在哪里抛出此消息,它告诉我(我认为)找到了 Jacoco 报告文件,但没有找到工作服显然需要的源文件。
我试过的
因此,我尝试通过以下所有方式将工作服任务指向我的源文件:
我也尝试添加sourceSets project.sourceSets.main
到jacocoTestReport
任务中。
项目设置
我的最小build.gradle
文件:
相关问题
- 基本上相同的问题在https://github.com/kt3k/coveralls-gradle-plugin/issues/32但解决方案是设置
sourceDirs
并且jacocoReportPath
我已经尝试过。 - 在https://github.com/kt3k/coveralls-gradle-plugin/issues/39和https://github.com/kt3k/coveralls-gradle-plugin/issues/63建议添加
sourceDirs += ['src/main/kotlin']
听起来合理但不没救 同样的,从第一个链接,sourceDirs = files(sourceSets.main.kotlin.srcDirs).files.absolutePath
。 - 从https://github.com/kt3k/coveralls-gradle-plugin/issues/77解决方案是
project.extensions.coveralls.sourceDirs += project.sourceSets.main.kotlin.srcDirs
我尝试过的。 CI 管道中的Kotlin 代码覆盖率问题的措辞相当笼统,但是有一条评论指向了讨论:当我运行任务时,会在 xml 和 html 中
jacocoTestReport
生成报告。build/reports/jacoco/test/
Kotlin Test Coverage这个问题也很笼统,并用一个不必要的复杂构建文件来回答,我从中没有学到任何新东西。
- 测量 Kotlin 代码的测试覆盖率?声称 Jacoco 报告不起作用,但对我来说,情况并非如此。
- Java 也有类似的问题,例如GitHub 上的 Java 代码覆盖工具,但对我来说,当我使用 Java 时,一切正常。
PS 实际上我想使用 Gradle Kotlin DSL,但由于似乎没有人使用它,所以我在为 Gradle 提出这个问题。但最后,我希望 Kotlin DSL 也能解决这个问题。
gradle - 如何定义 settings.gradle.kts 和 build.gradle.kts 中可用的 kotlin dsl gradle 属性?
我有一个使用 kotlin DSL 编写的多平台(kotlin)多项目 gradle 项目。忍受我。在 settings.gradle.kts 中,我有两种主要类型的包含帮助器来处理替代项目布局,一个常规模块(module/src)和一个多平台模块(module/js、module/common、module/jvm)。然后,我创建变量来保存我与这些助手一起使用的每个变量的列表,以按照我想要的方式包含所有内容。
我希望能够重用在我的 build.gradle.kts 文件的设置(列表)中定义的这些信息。
每次我尝试按照我在构建文件中的方式执行此操作时,都会收到相同的错误:
或者
我得到的错误是:
我的猜测是设置不支持扩展,所以即使设置this
中的类型为 Project(它是根项目),也没关系,你不能使用额外的。我能想到的唯一方法是在 gradle 属性文件中定义项目属性,但我不太热衷于此,因为这似乎不是要保留在那里的信息类型。
有什么东西可以在 buildscript 进行时延迟初始化扩展属性?
gradle - gradle + kotlin-dsl:下载文件
如何使用kotlin-dsl在gradle 任务中下载文件?
我想从外部源 (URL) 下载文件并将其存储 + 重命名在我的项目文件夹中。
我试图搜索它,但我只找到了时髦的解决方案。
提前致谢!
gradle - 在使用 Gradle Kotlin DSL 的复合包含构建中模拟多项目执行?
我正在简化我必须说明我的问题的设置,但包括结构复杂性。
使用 Gradle 的 Kotlin DSL,我有一个复合构建,其中根项目为空,两个包含的构建都是并排的多项目构建,具有不同的结构,使用“容器”项目(也就是没有 build.gradle 的空目录.kts 文件)用于组织目的。
我的愿望是能够在 IDE (Intellij) 内的根复合项目中运行构建,它模仿多项目执行的行为,该项目下的所有内容依次执行任务。
在 Groovy 中,可以只在组合项目中的 includedBuilds*.tasks* 上使用扩展运算符将其连接起来,但在 Kotlin DSL 中,我们只能访问任务,这是单个 TaskReference,无法获取集合任务集合(TaskCollection 或任务集合)或任务引用集合。
所以在复合build.gradle.kts的rootProject中,我有:
然后在其中一个包含的构建 build.gradle.kts 文件中,我尝试以两种不同的方式连接它们(很多,但这是两种方法):
基本上,尝试上述变体只构建和清理包含构建的根项目,而不是子项目。这是一个错误吗?
我不想求助于需要了解包含的构建的底层结构来连接它。那将是不可持续的。我究竟做错了什么?
gradle - 使用 gradle kotlin dsl 执行 JavaExec 任务
我创建了简单的build.gradle.kts
文件
在我用 main 方法src/main/java/com.lapots.breed
创建类Application
但是当我尝试执行execute
任务时,它会因为任务不存在的错误而失败。此外,当我使用它列出所有可用任务gradlew tasks
时,根本不会显示execute
任务。
问题是什么?