Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gradle 渐变色输出(不再有project.serviceOf()或services()api方法)_Gradle_Kotlin_Build - Fatal编程技术网

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

Gradle 渐变色输出(不再有project.serviceOf()或services()api方法),gradle,kotlin,build,Gradle,Kotlin,Build,我从gradle groovy迁移到gradle kotlin构建脚本 我曾经有彩色输出,如中所示 但在gradle 6.x和kotlin dsl中,这似乎不再有效 services…或project.serviceOf()方法似乎不再存在(在kotlin dsl中) 你知道如何从kotlin build.gradle.kts任务中获得丰富多彩的控制台输出吗?我不知道是否可以使用DSL在临时任务中获得服务注册表。但是,如果您可以将任务实现为具体的类(如果您愿意,仍然可以在DSL中实现),那么您甚

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

我曾经有彩色输出,如中所示

但在gradle 6.x和kotlin dsl中,这似乎不再有效

services…
project.serviceOf()
方法似乎不再存在(在kotlin dsl中)


你知道如何从kotlin build.gradle.kts任务中获得丰富多彩的控制台输出吗?

我不知道是否可以使用DSL在临时任务中获得服务注册表。但是,如果您可以将任务实现为具体的类(如果您愿意,仍然可以在DSL中实现),那么您甚至可以注入内部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
import org.gradle.api.DefaultTask
导入org.gradle.api.tasks.TaskAction
导入org.gradle.internal.logging.text.StyledTextOutput.Style
导入org.gradle.internal.logging.text.StyledTextOutputFactory
导入javax.inject.inject
打开类MyTask@Inject构造函数(私有val styledTextOutputFactory:styledTextOutputFactory):DefaultTask(){
@任务行动
fundostuff(){
val out=styledTextOutputFactory.create(javaClass.name)
out.withStyle(Style.Info).println(“彩色文本”)
}
}
tasks.register(“myTask”)//DSL