错误代码风格被Jenkins / checkstyle视为失败

sit_in 发布于 2019-03-09 checkstyle 最后更新 2019-03-09 14:35 0 浏览

我正在使用Jenkins来测试Java软件项目(使用play web框架,但这应该不重要)。 部分测试是关于代码风格的,我使用checkstyle。我试图用以下方式设置我的工作:

  • 我通过命令行执行checkstyle,它使用xml生成报告
checkstyle -c /usr/share/checkstyle/sun_checks.xml -f xml -r app test -o checkstyle.xml
    然后我使用this Jenkins plugin添加后期构建操作,该操作读取xml报告并集成到构建结果中
所以,现在我的问题如下:当代码中有任何样式问题时,詹金斯认为这项工作是失败的。默认情况下,在这种情况下不执行生成后操作。 人们可以改变这一点,以便生成报告,尽管它仍然让我感到糟糕的代码风格被认为是失败的。我认为这可能是主观的。无论如何,有没有办法改变这种情况?一般来说,詹金斯如何确定命令外壳是否失败?
已邀请:

nodio

赞同来自:

如果查看Main类checkstyle(link)的源代码,您会看到退出代码是找到的样式问题的数量(在某些特殊情况下为1)。 这就是Jenkins关注的问题:退出代码0规范地表示成功,非零代码表示失败。 我认为你的解决方案是无条件地使退出代码为0。一个(bash)命令就是这样

checkstyle <arguments...> || true
更一般地说,您可以编写一个运行checkstyle的小包装脚本,然后使用代码0退出。