gpt4 book ai didi

Gradle 彩色输出(不再有 project.serviceOf() 或 services() api 方法)

转载 作者:行者123 更新时间:2023-12-02 13:18:51 25 4
gpt4 key购买 nike

我从 gradle groovy 迁移到 gradle kotlin 构建脚本。

我曾经按照 stackoverflow answer 中的建议进行彩色输出

但是从 gradle 6.x 和 kotlin dsl 开始,这似乎不再起作用了。
services...project.serviceOf<>()方法似乎不存在(不再/或在 kotlin dsl 中)。

关于如何从 kotlin build.gradle.kts 任务获得彩色控制台输出的任何想法?

最佳答案

我不知道是否可以使用 DSL 在临时任务中获取服务注册表。但是,如果您可以将任务实现为具体类(如果您愿意,仍然可以在 DSL 中完成),您甚至可以注入(inject)内部 Gradle 服务。

对于 Kotlin 类,它可能如下所示:

import org.gradle.api.DefaultTask
import org.gradle.api.tasks.TaskAction
import org.gradle.internal.logging.text.StyledTextOutput.Style
import org.gradle.internal.logging.text.StyledTextOutputFactory
import javax.inject.Inject

open class MyTask @Inject constructor(private val styledTextOutputFactory: StyledTextOutputFactory) : DefaultTask() {
@TaskAction
fun doStuff() {
val out = styledTextOutputFactory.create(javaClass.name)
out.withStyle(Style.Info).println("colored text")
}
}

tasks.register<MyTask>("myTask") // DSL

关于Gradle 彩色输出(不再有 project.serviceOf() 或 services() api 方法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60396218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com