运行Makefile时如何摆脱“错误4”

时间:2021-02-14 08:57:35

标签: makefile

我有这个运行良好的 Makefile:

$ cat Makefile
PMD := ~/pmd-bin-6.31.0/bin/run.sh pmd

gen_quality_analysis:
    $(PMD) -d MyCode/ -R rulesets/java/quickstart.xml -f text > quality_analysis/report.txt
$

我的问题是我从 Makefile 中得到一个 Error 4

$ LANG=en make gen_quality_analysis 
~/pmd-bin-6.31.0/bin/run.sh pmd -d AtlasPOC2/ -R rulesets/java/quickstart.xml -f text > quality_analysis/report.txt
Feb 14, 2021 9:53:35 AM net.sourceforge.pmd.PMD encourageToUseIncrementalAnalysis
WARNING: This analysis could be faster, please consider using Incremental Analysis: https://pmd.github.io/pmd-6.31.0/pmd_userdocs_incremental_analysis.html
make: *** [Makefile:15: gen_quality_analysis] Error 4
$ 

我怎样才能骑这个

make: *** [Makefile:15: gen_quality_analysis] Error 4

线?

注意:尽管我收到了这个错误 4,但工作运行良好,我得到了预期的 report.txt

2 个答案:

答案 0 :(得分:2)

按优先顺序:

  1. 修复程序 ~/pmd-bin-6.31.0/bin/run.sh pmd 以在成功时返回 0。

  2. 编写一个将退出状态从 4 更改为 0 的包装器:

    $(PMD) -d ...;\
    status=$$?;\
    [ $$status -eq 4 ] && status=0;\
    exit $$status
    
  3. 使用 .IGNORE: gen_quality_analysis 忽略该目标的错误。

  4. 通过使用 make -i 运行 make 忽略所有错误。

答案 1 :(得分:0)

来自 pmd 的帮助文档 - 发现违规时返回码为 4,这是意料之中的。 https://pmd.github.io/latest/pmd_userdocs_cli_reference.html

如果您希望即使发现违规也返回代码为 0,请添加“-failOnViolation false”。