Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jenkins/checkstyle认为错误的代码样式_Java_Playframework_Jenkins_Checkstyle - Fatal编程技术网

Java Jenkins/checkstyle认为错误的代码样式

Java Jenkins/checkstyle认为错误的代码样式,java,playframework,jenkins,checkstyle,Java,Playframework,Jenkins,Checkstyle,我正在使用Jenkins测试一个Java软件项目(使用PlayWeb框架,但这并不重要) 测试的一部分是关于代码样式的,我使用checkstyle。我试图以以下方式安排我的工作: 我通过命令行执行checkstyle,命令行生成xml格式的报告 checkstyle-c/usr/share/checkstyle/sun_checks.xml-f xml-r app test-o checkstyle.xml 然后,我使用添加了一个构建后操作,该操作读取xml报告并集成到构建结果中 所以,

我正在使用Jenkins测试一个Java软件项目(使用PlayWeb框架,但这并不重要)

测试的一部分是关于代码样式的,我使用checkstyle。我试图以以下方式安排我的工作:

  • 我通过命令行执行checkstyle,命令行生成xml格式的报告
checkstyle-c/usr/share/checkstyle/sun_checks.xml-f xml-r app test-o checkstyle.xml

  • 然后,我使用添加了一个构建后操作,该操作读取xml报告并集成到构建结果中
所以,现在我的问题是:当代码中存在任何样式问题时,Jenkins认为这项工作是失败的。默认情况下,在这种情况下不执行生成后操作


我们可以改变这一点,这样尽管如此还是会生成一个报告,尽管它仍然让我觉得糟糕的代码风格被认为是失败的。我认为这可能是主观的。不管怎样,有没有办法改变这一点?一般来说,Jenkins如何确定命令shell是否失败?

如果您查看checkstyle()的
Main
类的源代码,您将看到退出代码是发现的样式问题的数量(或者在某些例外情况下为1)

这就是Jenkins所关注的:退出代码0通常表示成功,非零代码表示失败

我认为您的解决方案是无条件地将退出代码设置为0。用于此操作的(bash)命令如下

checkstyle <arguments...> || true
checkstyle | | true

一般来说,您可以编写一个小包装器脚本,运行checkstyle,然后以代码0退出。

您是如何构建项目的?您是否正在使用任何类型的构建工具(ant/maven)?我已经有一段时间没有研究这个问题了,但这解决了它。谢谢你的回答!