Gradle 渐变色输出(不再有project.serviceOf()或services()api方法)
我从gradle groovy迁移到gradle kotlin构建脚本 我曾经有彩色输出,如中所示 但在gradle 6.x和kotlin dsl中,这似乎不再有效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中实现),那么您甚
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