JenKins结合cppcheck及cpplint进行代码风格及静态代码检测
来源:互联网 发布:postscript软件下载 编辑:程序博客网 时间:2024/04/30 21:45
JenKins结合cppcheck及cpplint
最近公司需要在Jenkins上安装cppcheck及cpplint进行代码风格及静态代码检测,这里记录下过程。
前提条件
- 安装了Jenkins
步骤如下
第一步:安装cppcheck并配置环境
通过源码安装
下载地址:
https://github.com/danmar/cppcheck/releases/
https://sourceforge.net/projects/cppcheck/files/cppcheck/1.77/
我下的是1.77的版本
减压后,进入目录运行以下命令进行安装
sudo make SRCDIR=build CFGDIR=/usr/share/cppcheck/sudo make install CFGDIR=/usr/share/cppcheck/
通过apt安装
sudo apt-get install cppcheck
验证
cppcheck --version
第二步:安装cpplint并调整
因为cpplint默认只支持C++语言的风格代码检测,所以要修改代码以支持c语言代码。
下载地址: https://github.com/google/styleguide
修改代码以支持c语言代码
下载完后进入cpplint目录,打开cpplint.py文件,将下面这行的代码
_valid_extensions = set(['cc', 'h', 'cpp', 'cu', 'cuh')
修改为
_valid_extensions = set(['cc', 'h', 'cpp', 'cu', 'cuh','c'])
新增代码以支持检测目录
因默认的代码只支持单个文件,所以要新增一个代码文件来支持检测目录
在cpplint.py文件的同目录下,新增一个文件cpplintdir.py,内容如下
#!/usr/bin/env pythonimport osimport fnmatchimport sysdef all_files(root,patterns = '*', single_level = False, yield_folders=False): patterns = patterns.split(';') for path, subdirs, files in os.walk(root): if yield_folders: files.extend(subdirs) files.sort() for name in files: for pattern in patterns: if fnmatch.fnmatch(name, pattern): yield os.path.join(path,name) break if single_level: breakif __name__ == '__main__': if len(sys.argv) < 2: print 'Please set the absolute path as the first parameter for parse.' sys.exit() for path in all_files(sys.argv[1],'*.cpp;*.h;*.c'): os.system("python cpplint.py %s"%(path))
增加文件执行权限
sudo chmod +x cpplint.pysudo chmod +x cpplintdir.py
第三步:Jenkins安装cppcheck及Warnings Plug-in插件
因为JenKins目前没有cpplint的插件,所以通过Warnings Plug-In来搜集cpplint的报告。
安装cppcheck及Warnings Plug-in插件
进入Jenkins的系统管理>插件管理>可选插件
cppcheck安装过程如下图所示,Warnings Plug-in的过程是一样的
第四步:Jenkins配置Jobs
cd /var/lib/jenkins/jobs/styleguide/cpplintpython goodixlint.py /var/lib/jenkins/jobs/TestProjectSrc/workspace 2>&1 | tee cpplint-style.xmlcp cpplint-style.xml /var/lib/jenkins/jobs/TestProjectSrc/workspace/cpplint-style.xmlcd /var/lib/jenkins/jobs/TestProjectSrc/workspacemkdir static_analysis cppcheck 4 --enable=all --inconclusive --xml --xml-version=2 -q ./src 2>static_analysis/src-cppcheck.xmlexit 0cd /var/lib/jenkins/jobs/TestProjectSrc/workspacepwd
0 0
- JenKins结合cppcheck及cpplint进行代码风格及静态代码检测
- 静态代码检测工具Cpplint
- 静态代码分析 cpplint
- Cpplint代码静态检测工具
- 使用cpplint进行提交代码的风格检查
- 代码静态检查-cppcheck
- 静态代码分析工具-jenkins应用2(astyle,nsiqcppstyle,c_style_check,cpplint and cUnit,cppUnit,c++test)
- 静态代码分析工具cppcheck
- cppcheck c++静态代码检查
- cppcheck c++静态代码检查
- 代码静态分析工具 --- CppCheck
- 静态代码检查工具 cppcheck
- Jenkins+PMD构建自动化静态代码检测
- 使用cppcheck检测代码警告、错误
- c++静态代码检查工具cppcheck
- 静态代码检查工具的使用(cppcheck)
- 静态代码检查工具 cppcheck 的使用
- 静态代码检查工具的使用(cppcheck)
- 使用Jaspersoft Studio绘制报表
- 安装windows 7系统的流程及基本问题解决
- 手机网页制作需要注意的问题
- 拿什么拯救自己
- CMD进入MYSQL
- JenKins结合cppcheck及cpplint进行代码风格及静态代码检测
- float内存存储方式
- XSS类型
- Windows多显示器编程--VC 资料搜集
- MySql安装最后一步错误解决办法
- 怎么用MindManager进行项目管理
- jqgrid常用功能 详解
- 如何在MyEclipse10中配置Jad反编译工具?
- JSR-303规范,Bean Validation