Java 如何在引入新警告时使生成失败

Java 如何在引入新警告时使生成失败,java,maven-2,continuous-integration,build-automation,Java,Maven 2,Continuous Integration,Build Automation,我们正在做一些旧的java项目。代码中有很多警告,但我希望避免引入新的警告。有没有办法和maven,Bambon一起做。我们无权在Bambol(corporation)上安装新插件,因此首选maven解决方案。如果您使用eclipse,可以添加注释(@IgnoreWarnings)以忽略现有警告。但是只要有警告,您就必须修改源代码 使用PMD可能有一个更智能的解决方案(http://pmd.sourceforge.net/)和/或findbugs(http://findbugs.sourcefo

我们正在做一些旧的java项目。代码中有很多警告,但我希望避免引入新的警告。有没有办法和maven,Bambon一起做。我们无权在Bambol(corporation)上安装新插件,因此首选maven解决方案。

如果您使用eclipse,可以添加注释(@IgnoreWarnings)以忽略现有警告。但是只要有警告,您就必须修改源代码

使用PMD可能有一个更智能的解决方案(http://pmd.sourceforge.net/)和/或findbugs(http://findbugs.sourceforge.net/). 很多环境都有可用的插件


您还可以决定修复所修改类中的所有警告。当然,这意味着每个开发人员都倾向于这样做…

这里最重要的一个词是“new”-
您正在生成日志中查找新警告,无论其严重性或来源如何。

为此,您需要当前警告集的“快照”:

  • 复制“良好”版本的输出及其所有警告

  • 每次新生成后(假设未失败),将新日志与保存的日志进行比较-
    日志中的任何更改都意味着您有一个新的警告


干杯

好吧,我同意没有插件可以做到这一点,但您可以使用java 1.7通过简单的步骤做到这一点

在编译时使用处理器编译代码并维护日志文件中生成的警告。每次触发build时,它都会启动,您可以将旧日志文件与新日志文件进行比较

注意:在jdk 1.6和1.5中,同样可以使用APT工具。

可以使用task,在报告生成完成后,可以使用xslt提取大量警告(如果报告是xml格式,我相信还可以使用其他报告格式)


然后,使用ant任务,您可以比较当前构建中的警告数量和可接受的警告数量(可以是某个地方的硬编码数字,也可以是从以前构建的人工制品中提取的,如果您希望的话)

相关:老实说,我在“metric”下拉列表中找不到“compiler warning”(编译器警告)。您可以使用findbugs或checkstyle插件,并将阈值调整为当前值,因此如果值增加,则构建会失败?@wemu PMD也可以建议…jep!我只关注findbugs,因为我在IDE中也使用它,所以报告显示了同样的情况。但事实上PMD也有方便的东西!不,我可以数一数我现在收到的所有警告。但是仍然不知道当警告数量太多时,如何使用maven失败构建。请使用脚本从日志中读取警告数量,如果警告数量太多,则会失败(返回非零值)。