在Java中编写Gradle插件时,如何调用println

在Java中编写Gradle插件时,如何调用println,gradle,gradle-plugin,Gradle,Gradle Plugin,我正在用Java编写一个Gradle插件,是的,我知道我可以使用System.out.println,或者用Groovy编写它 但我很好奇Gradle类中是否存在一个直接的静态println函数。我找不到。我想知道是否有这样的事情: package org.gradlerocks; import org.gradle.api.DefaultTask; import org.gradle.api.tasks.TaskAction; static import org.gradle.api.So

我正在用Java编写一个Gradle插件,是的,我知道我可以使用
System.out.println
,或者用Groovy编写它

但我很好奇Gradle类中是否存在一个直接的静态
println
函数。我找不到。我想知道是否有这样的事情:

package org.gradlerocks;

import org.gradle.api.DefaultTask;
import org.gradle.api.tasks.TaskAction;

static import org.gradle.api.Something.println;


public class RockItTask extends DefaultTask {

    @TaskAction
    public void opine() {
        System.out.println("Yep. Gradle rocks.");

        // this would be groovy/gradle-ish:
        println("Yep. Gradle rocks.");

    }

}
我想知道是否有一个Gradle类可以导入一个静态的
println


否则我可以编写自己的静态println函数。但是我想我应该让社区看看是否已经存在了一种方法。

据我所知,Groovy开发工具包中没有这种方法。我建议你不要自己写

尽管您正在为Gradle开发一个插件,它自然可以在Groovy环境中工作,但对于这个项目,您使用的是Java。在Java中,使用
System.out.println(…)
。如果你想用Groovy风格开发你的插件,你应该使用Groovy(例如与
@CompileStatic
结合使用)。在Groovy中,阅读代码时看到一个简单的
println(…)
语句是很自然的,而在Java中则不会。读者可能会感到困惑或需要额外的检查,这是该方法的来源。还是将
is(Object)
方法添加到所有Java类中只是为了让它们看起来像Groovy?坚持使用您正在使用的语言并应用其约定,而不是其他语言的约定

请注意,即使Groovy向您的环境中添加了更多的自动导入,
println(…)
也不是静态导入,而是作为Groovy JDK增强功能(与
each(Closure)
相当)

如果您想了解记录邮件的最佳方式,请查看:

Gradle在静默日志级别将写入标准输出的任何内容重定向到其日志系统


要获得更详细的日志体验,您的插件可以使用
项目
实例和每个
任务
提供的
记录器
实例来支持不同日志级别的日志记录。

我同意这些观点,我也同意
记录器。quiet()
绝对是Java的发展方向。现在,如果我们可以访问StyledText类的话