在 Java 中编写 Gradle 插件时如何调用 println
How can I call println when writing a Gradle plugin in Java
我正在 Java 中编写一个 Gradle 插件,是的,我知道我可以只使用 System.out.println
,或者只是将其编写在 Groovy 中。
但我很好奇 Gradle class 中是否存在直接静态 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 class 带有静态 println
我可以导入。
否则我可以编写自己的静态 println 函数。但我想我会问社区看看是否已经存在。
据我所知,Groovy开发包中没有这个方法。我建议不要自己写。
即使您正在为 Gradle 开发一个插件,它自然可以在 Groovy 环境中工作,但对于这个项目,您正在使用 Java。在 Java 中,您使用 System.out.println(...)
。如果你想以 Groovy-ish 风格开发你的插件,你应该使用 Groovy(例如结合 @CompileStatic
)。在 Groovy 中,阅读代码时看到简单的 println(...)
语句会很自然,而在 Java 中则不会。读者可能会感到困惑或需要额外检查,这个方法来自哪里。还是您将 is(Object)
方法添加到所有 Java 类 只是为了让它们看起来 Groovy-ish?坚持你正在使用的语言并应用它的约定,而不是其他语言的约定。
请注意,即使 Groovy 向您的环境添加了更多自动导入,println(...)
也不是静态导入,而是 method on Object
,添加为 Groovy JDK 增强(相当于 each(Closure)
)。
如果您要求最 gradle-ish 的消息记录方式,请查看 the Gradle docs on logging:
Gradle redirects anything written to standard output to its logging system at the QUIET log level.
为了获得更详细的日志体验,您的插件可以使用 Project
实例和每个 Task
实例提供的 Logger
实例来支持不同日志级别的日志记录。
我正在 Java 中编写一个 Gradle 插件,是的,我知道我可以只使用 System.out.println
,或者只是将其编写在 Groovy 中。
但我很好奇 Gradle class 中是否存在直接静态 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 class 带有静态 println
我可以导入。
否则我可以编写自己的静态 println 函数。但我想我会问社区看看是否已经存在。
据我所知,Groovy开发包中没有这个方法。我建议不要自己写。
即使您正在为 Gradle 开发一个插件,它自然可以在 Groovy 环境中工作,但对于这个项目,您正在使用 Java。在 Java 中,您使用 System.out.println(...)
。如果你想以 Groovy-ish 风格开发你的插件,你应该使用 Groovy(例如结合 @CompileStatic
)。在 Groovy 中,阅读代码时看到简单的 println(...)
语句会很自然,而在 Java 中则不会。读者可能会感到困惑或需要额外检查,这个方法来自哪里。还是您将 is(Object)
方法添加到所有 Java 类 只是为了让它们看起来 Groovy-ish?坚持你正在使用的语言并应用它的约定,而不是其他语言的约定。
请注意,即使 Groovy 向您的环境添加了更多自动导入,println(...)
也不是静态导入,而是 method on Object
,添加为 Groovy JDK 增强(相当于 each(Closure)
)。
如果您要求最 gradle-ish 的消息记录方式,请查看 the Gradle docs on logging:
Gradle redirects anything written to standard output to its logging system at the QUIET log level.
为了获得更详细的日志体验,您的插件可以使用 Project
实例和每个 Task
实例提供的 Logger
实例来支持不同日志级别的日志记录。