我们正在开发一些旧的 java 项目。该代码有很多警告,但我想避免引入新警告。有没有办法用maven,bamboo来做到这一点。我们无权在竹子(公司)上安装新插件,因此首选 maven 解决方案。
4 回答
好吧,我同意没有插件可以做到这一点,但您可以使用 java 1.7 以简单的步骤做到这一点。
在编译时使用处理器来编译您的代码并维护在日志文件中生成的警告。每次您触发构建时,它都会启动,您可以将旧日志文件与新日志文件进行比较。
注意:在 jdk 1.6 和 1.5 中,您可以使用 APT 工具进行相同的操作。
您可以使用checkstyle任务,在报告生成完成后,您可以使用 xslt 提取警告数量(如果报告是 xml,我相信其他报告格式也可用)。
然后,使用 ant 任务,您可以比较当前构建中的警告数量与可接受的警告数量(如果您想花哨的话,它可以是某处的硬编码数字或从以前的构建工件中获取)
如果您使用的是 eclipse,则可以添加注释 (@IgnoreWarnings) 以忽略现有警告。但是你必须在任何有警告的地方修改源代码。
使用 PMD (http://pmd.sourceforge.net/) 和/或 findbugs (http://findbugs.sourceforge.net/) 可能有更智能的解决方案。许多环境都可以作为插件使用。
您还可以决定修复您修改的类中的所有警告。当然,这意味着每个开发人员都倾向于这样做......
这里重要的词是“新”——
您正在构建日志中寻找新的警告,无论它们的严重性或来源如何。
为此,您需要拥有当前警告集的“快照”:
复制“良好”构建的输出及其所有警告。
在每个新构建之后(假设它没有失败),将新日志与保存的日志进行比较 - 日志中的
任何更改都意味着您有一个新的警告。
干杯