扫描工具(Coverity代码扫描工具)
1.说明:Coverity代码扫描工具可以扫描java,C/C++等语言,可以和jenkins联动,不过就是要收钱,jenkins上的插件可以用,免费的,适用于小的java项目
一,扫描Java代码
1.扫描.java文件
源代码在附件FileName.java。
1)执行命令
cov-configure --java
cov-build --dir results javac FileName.java
cov-analyze --dir results --all --aggressiveness-level high
cov-format-errors --dir results --html-output htmlResults
cov-commit-defects --host IP1 --dataport 9090 --stream TEST.java --version 0.0.1 --user Username --password Password --dir results
2)命令截图
cov-configure命令:
cov-build命令:
cov-analyze命令:
cov-format-errors命令:
附件htmlResults.zip保存 CoverityClient分析后的结果。
cov-commit-defects命令:
3)查看结果
访问,在coverity server 主页面上可以看到该项目的issues。
可在configuration-projects&streams中查看TEST.java关于build detail 和analyze detail的相关信息。
2.扫描maven管理的java项目
1) command
cov-configure --java
cov-build --dir results mvn clean install
cov-analyze --dir results --all -aggressiveness-level high
cov-format-errors --dir results --html-output htmlResults
cov-commit-defects --host 10.116.24.183 --dataport 9090 --stream jenkins_pipeline_java_maven-master --version 0.0.1 --user Username --password Password --dir results
2) 命令截图
cov-configure命令:
cov-build结果如图:
cov-analyze结果:
cov-format-errors命令:
Coverity Client扫描结果可在附件mavenResults.zip中的htmlResults中查看。
cov-commit-defects命令:
3)查看结果
因为没有检测到问题,所以在coverity server 主页面上看不到该项目的issues。
可在configuration-projects&streams中查看
jenkins_pipeline_java_maven-master 关于build detail 和analyze detail的相关信息。
3.扫描gradle管理的java项目
1)应新建init.gradle文件
allprojects {
tasks.withType(JavaCompile) {
if (project.hasProperty("forCoverity")) {
options.sourcepath = files('/this/directory/must/not/exists')
}
}
}
2)执行命令
cov-configure --java
cov-build --dir result gradle clean build --no-daemon --init-script init.gradle -PforCoverity
cov-analyze --dir result --all --aggressiveness-level high
cov-format-errors --dir result --html-output htmlResults
3)命令截图
执行cov-build 命令图片:
执行cov-analyze命令图片:
执行cov-format-errors命令图片:
coverity client 扫描结果可在附件gradle.zip中htmlResults查看。