我必须在我的本地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
我试图创建另一个调用该命令的脚本,但我得到了相同的结果。
有关如何处理此问题的任何建议?任何解决方案都会非常有用。
答案 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插件)来解决我的问题。
谢谢大家。