Java 将stderr重定向到stdout时,gradle的输出被篡改。詹金斯·格拉德尔

Java 将stderr重定向到stdout时,gradle的输出被篡改。詹金斯·格拉德尔,java,jenkins,gradle,output,Java,Jenkins,Gradle,Output,当gradle的所有输出重定向为 gradle clean build > buildlog 2>&1 java编译器警告输出,如 ... :build :application:compileJava/var/lib/jenkins/jobs/some/path/somefile.java:87: warning: somewarningtext 1 warning :application:processResources 请注意,application:compi

当gradle的所有输出重定向为

gradle clean build > buildlog 2>&1
java编译器警告输出,如

...
:build
:application:compileJava/var/lib/jenkins/jobs/some/path/somefile.java:87: warning: somewarningtext
1 warning

:application:processResources
请注意,application:compileJava和警告文本之间没有空格或换行符。这是可以的,但我们使用Jenkins gradle插件,它将执行的gradle任务名称输出到一个狭窄的框中

但它包含:application:compileJava/var/lib/jenkins/jobs/some/path/somefile.java:87:warning:somewarningtext而不是:application:compileJava,并导致生成日志以奇怪的方式显示:


在这种情况下,我是否有一些变通办法?我希望生成日志可读。

一种解决方法可能是为compile类型的所有任务添加自己的换行符:

allprojects{
    tasks.withType(JavaCompile){
        doFirst{println "\n"}
    }
}

一种解决方法可能是为compile类型的所有任务添加自己的换行符:

allprojects{
    tasks.withType(JavaCompile){
        doFirst{println "\n"}
    }
}