为什么编译器会在多行中输出单个警告?

时间:2014-08-04 16:36:11

标签: java gradle tfsbuild javac compiler-warnings

我们最近通过调用gradle bat文件并处理进程的输出和错误流,将我们的android项目集成到TFS Build流程工作流中。

问题是为项目生成的警告消息是使用换行符写入错误流的,从而导致单个编译器警告的多个TFS构建警告。

这是我们的构建摘要中的示例,显示两个编译器警告被报告为几个tfs警告:

2 compilation warnings being reported as several tfs warnings

我需要更改某个设置以告诉编译器将警告生成为单行输出吗?也许是gradle本身的一些配置?

我真的很想避免在工作流程本身中处理这个问题,因为这会给这样一个微不足道的事情带来很大的复杂性。

1 个答案:

答案 0 :(得分:1)

在以下位置查看gradle记录器的源代码:

https://github.com/gradle/gradle/blob/master/subprojects/core/src/main/groovy/org/gradle/logging/internal/AbstractLineChoppingStyledTextOutput.java

为了便于阅读,文本确实被剪切到一定长度,并且在记录的文本中插入格式化字符。

您可以清楚地看到此记录器样式在以下位置初始化:

https://github.com/gradle/gradle/blob/master/subprojects/core/src/main/groovy/org/gradle/BuildLogger.java

没有太多的配置选项;

基于此分析,遗憾的是我不认为您可以通过配置影响日志记录样式。但是在调用WriteBuildMessage之前通过做一些简单的字符串解析来删除工作流中的行尾格式应该很容易,不是吗?