如何使cpplint与Jenkins警告插件一起使用

时间:2013-01-05 13:30:04

标签: jenkins compiler-warnings lint

我在Jenkins中添加了一个'执行shell'构建步骤来运行cpplint.py

python /var/lib/jenkins/scripts/cpplint.py --counting=detailed `find path -name *.cpp

我还添加了'扫描编译器警告'并添加了CppLint。

然而,即使它在控制台输出中显示一些警告,例如

,它总是会收到0警告
filename.cpp:18:  Missing space after ,  [whitespace/comma] [3]

2 个答案:

答案 0 :(得分:3)

如果使用--output = vs7运行cpplint.py,它将生成Jenkins警告插件所期望的格式。

答案 1 :(得分:2)

我使用Cppcheck Plugincpplint_to_cppcheckxml.pycpplint.py输出转换为Cppcheck Plugin所需的XML格式。这非常有效。我可以点击Jenkins作业页面上显示的Cppcheck结果中的违规问题,它将显示突出显示有违规行的源代码。很酷。

您必须提供cpplint源代码目录的绝对路径,以便在Cppcheck Results页面上生成超链接。我唯一看到的是你的Cppcheck和cpplint结果被合并而不是分开。

如果使用Linux bash脚本,这里是我如何将相对路径转换为绝对路径,以便cpplint在其输出中生成绝对路径:

# Build cpplint reports and transform to cppcheck compatible XML format
# Convert relative path to absolute path so that Jenkins job can easily display the source code errors
srcPathAbsolute=${PWD}/../dicegame/src/main
srcPathAbsolute=$(readlink -f ${srcPathAbsolute})
cpplint.py --counting=detailed ${srcPathAbsolute}/*.cpp  2>&1| cpplint_to_cppcheckxml.py &> cpplint-cppcheck-result.xml 

在我的Jenkins作业配置中找到ccplint-cppcheck-result.xml文件和我的普通cppcheck-result.xml。

Publish cppcheck results
Cppcheck report XMLs  **/*cppcheck-result.xml

感谢gerkey on Bitbucket cpplint_to_cppcheckxml.py。他的cpplint_to_cppcheckxml.py脚本作为如何将其他工具的输出连接到现有Jenkins插件的示例。非常好!