为什么Jenkins在执行外部Windows命令行后失败了?

时间:2015-06-16 20:16:07

标签: jenkins

我必须在我的本地Jenkins安装中创建一个作业,它执行SonarQube分析,然后调用命令行程序来搜索重复的代码行。但是,当我执行后一个命令(cpd)时,它运行正常,因为它在外部文件中正确输出,但Jenkins仍然指出它是这样的错误:

E:\BASE_DIR>cpd --minimum-tokens 100 --files "E:\BASE_DIR\Project_Folder" --language java  1>>"E:\BASE_DIR\Project_Folder\CPD_CLIG.txt" 

Build step 'Execute shell' marked build as failure
Finished: FAILURE 

我试图创建另一个调用该命令的脚本,但我得到了相同的结果。

有关如何处理此问题的任何建议?任何解决方案都会非常有用。

2 个答案:

答案 0 :(得分:1)

简单而简短的回答是

请在“执行shell”构建步骤中添加以下行。

“#!/ bin / sh的”

现在让我向您解释为什么我们需要“Execute Shell”构建作业的这一行。

默认情况下,Jenkins使用“/ bin / sh -xe”,这意味着-x将打印每个命令。另一个选项-e,这会导致shell在任何命令退出时立即停止运行脚本零(当任何命令失败时)退出代码。

因此,添加“#!/ bin / sh”将允许您执行任何选项。

请参阅:How/When does Execute Shell mark a build as failure in Jenkins?

答案 1 :(得分:0)

我没有为我的问题找到合适的解决方案,但我意识到我可以使用Jenkins插件进行静态代码分析(DRY插件和PMD插件)来解决我的问题。

谢谢大家。