【问题标题】:Why does the compiler output single warnings in multiple lines?为什么编译器会在多行中输出单个警告?
【发布时间】:2014-08-04 16:36:10
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: java gradle tfsbuild javac compiler-warnings


    【解决方案1】:

    查看 gradle logger 的源代码:

    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 之前进行一些简单的字符串解析来删除工作流中的行尾格式应该很容易,不是吗?

    【讨论】:

    • 该死的...非常感谢您发现这一点。是的,它并没有那么复杂,但它仍然感觉非常hacky,这就是为什么我喜欢一种配置它的方法。我想我必须采用那个解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多