Coverity扫描CRM项目(cav扫描仪器)
Coverity扫描CRM项目
一、项目属性
1.前端代码为vue.js;后端代码为maven管理的java项目
2.开发接口人
二、环境配置
1.在/etc/hosts文件中添加阿里云的maven内网源仓库
maven.aliyun.com
2.在/root/.bashrc文件中添加PATH环境变量
JAVA_HOME=/usr/local/java/jdk1.8.0_241
MAVEN_HOME=/usr/local/maven/apache-maven-3.6.1
PATH=$PATH:...:$JAVA_HOME/bin:$MAVEN_HOME/bin
3.maven版本(3.6)
/usr/local/maven/apache-maven-3.6.1
4.java版本(1.8)
/usr/local/java/jdk1.8.0_241
5.依赖文件(*.pom/*.jar/*.aar)
/root/.m2
三、遇到的问题及解决方法(依赖问题大多为内网环境无法从源仓库下载依赖文件,可以从有外网的环境中编译下载依赖后拷贝到/root/.m2文件相应目录)
1.缺少对应的.jar和.pom文件(cov-build)--手动下载并添加到本地/root/.m2/repository
2.Coverity工具cov-build过程中报错白色字体“Failure to find xxx:xxx:xxx:xxx”
问题原因:缺少.pom文件
解决方法:从Windows下载好的.pom文件拷贝到/root/.m2/相应目录中
3.Coverity工具cov-build过程中报错红色字体“Failure to find xxx:xxx:xxx:xxx”
问题原因:缺少中间的一堆.pom及.jar、.aar文件
解决方法:从Windows下载好的.pom及.jar、.aar文件拷贝到/root/.m2/相应目录中
4.使用mvn install过程中报错如下
1)在windows能正常mvn install,linux环境下报错如上
2)将linux本地maven缓存文件(.m2/repository)全部删除,然后windows系统maven下载好的依赖文件删除多余文件_remote.repositories、*.sha1和*.lastUpdated文件后,拷贝到linux相应目录
注意:手动从windows拷贝依赖文件到linux系统中,需要将多余的*.lastUpdated、*.sha1、_remote.repositories、文件删除,仅拷贝jar/pom/aar文件即可(一般情况下,需要将缺少的jar文件的整个系列一起拷贝,如相同目录下的api、parent)
四、扫描命令(蓝色字体部分内容根据实际情况填写)
1.后端代码(java-maven)
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 [Server IP] --dataport [Server Port] --stream [Project Name] --version [Version] --user [Username] --password [Password] --dir results
备注:初次扫描发现问题659个,中间过程中开发修改后扫描,总共经过7次扫描,最终问题全部解决
2.前端代码(vue-js)
cov-configure --javascript
cov-build --dir results --no-command --fs-capture-search ./
cov-analyze --dir results --all --aggressiveness-level high
cov-format-errors --dir results --html-output htmlResults
cov-commit-defects --host [Server IP] --dataport [Server Port] --stream [Project Name] --version [Version] --user [Username] --password [Password] --dir results
备注:扫描结果无error,扫描过程中也没有报错,详见“前端代码扫描过程”
Sonarqube扫描CRM项目
一、项目属性
1.前端代码为vue-js;后端代码为maven管理的java项目
2.开发接口人
陈强
二、sonar-scanner配置
1.下载并解压sonar-scanner.xxx.zip
2.配置环境变量
(1)windows
计算机属性-->高级系统设置-->环境变量-->admin的用户变量-->Path-->编辑-->新建(内容如下)
D:\sonar-scanner-4.2.0.1873\bin
(2)linux(在/root/.bashrc中添加如下内容)
sonar-scanner=D:\sonar-scanner-4.2.0.1873
PATH=$PATH:...:$sonar-scanner/bin
三、环境配置
1.java版本(1.8)
C:\Program Files\Java\jdk1.8.0_241\bin
2.maven版本(3.6)
D:\apache-maven-3.6.1\bin
3.sonar-scanner
D:\sonar-scanner-4.2.0.1873\bin
四、扫描过程中遇到的问题
1.mvn编译过程中报错“Please provide compiled classes of your project with sonar.java.binaries property”
问题原因:sonarQube 4.12开始,sonar将会进行程序的动态检查,不配置sonar.java.binaries属性将会出错
解决方法:需要在sonar-scanner安装目录下/conf/sonar-scanner.properties文件添加sonar.java.binaries
# sonar.java.binaries=项目路径/target/classes
sonar.java.binaries=D:\new-CRM-master-sonar\target\classes
五、扫描命令(蓝色字体部分内容根据实际情况填写)
1.后端代码(java-maven)
(1)源代码目录下执行
mvn clean install
(2)源代码目录下执行如下命令
mvn sonar:sonar -Dsonar.projectKey=xxx -Dsonar.sources=. -Dsonar.host.url=http://xxx/ -Dsonar.login=xxx -Dsonar.projectName=xxx
2.前端代码(vue-js)
sonar-scanner.bat -D"sonar.projectKey=xxx" -D"sonar.sources=." -D"sonar.host.url=http://xxx" -D"sonar.login=xxx" -D"sonar.projectName=xxx"