在Java中编写Gradle插件时,如何调用println
我正在用Java编写一个Gradle插件,是的,我知道我可以使用在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
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类的话