当前位置:首页 > 技术分析 > 正文内容

Coverity扫描CRM项目(cav扫描仪器)

ruisui885个月前 (01-31)技术分析24

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"

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/607.html

分享给朋友:

“Coverity扫描CRM项目(cav扫描仪器)” 的相关文章

5个看起来像 MacOS 的 Linux 发行版,赶紧收藏!

既想使用 Linux,又想同时使用 Mac ?那么你可以尝试这些 Linux 发行版,你肯定会觉得自己在用 Mac 系统。1. Elementry OSElementry OS 是看起来像 Mac OS 的最好的 Linux 发行版。和 Mac 一样,这个操作系统也是为了保护隐私而设计的。因此你会得...

Ubuntu 24.10发行版登场:Linux 6.11内核、GNOME 47桌面环境

IT之家 10 月 11 日消息,Canonical 昨日发布新闻稿,正式推出代号为 Oracular Oriole 的 Ubuntu 24.10 发行版。新版在内核方面升级到最新 6.11 版本,并采用 GNOME 47 桌面环境。Ubuntu 24.10 发行版调整了内核策略,开始选择最新的上游...

「Git迁移」三行命令迁移Git包含提交历史,分支,tag标签等信息

问题描述:公司需要将一个git远程服务器的全部已有项目迁移到一台新服务器的Gitlab中,其中需要包含全部的提交纪录,已有的全部分支与全部打tag标签,目前此工作已全部迁移完毕,特此记录一下操作步骤环境描述:1. 要迁移的远程Git:Gitblit2. 迁移目的Git:Gitlab3. 暂存代码的P...

Python 幕后:Python导入import的工作原理

更多互联网精彩资讯、工作效率提升关注【飞鱼在浪屿】(日更新)Python 最容易被误解的方面其中之一是import。Python 导入系统不仅看起来很复杂。因此,即使文档非常好,它也不能让您全面了解正在发生的事情。唯一方法是研究 Python 执行 import 语句时幕后发生的事情。注意:在这篇文...

vue2中路由的使用步骤,你学会了吗?

今天我们来整理下关于vue2中路由的使用步骤:1. 导入 vue 文件和Vue-router文件(注意:vue-router是依赖vue运行的,所以一定在vue后引入vue-router)2. 定义路由组件模板3. 创建路由实例并定义路由规则4. 将路由实例挂载给Vue实例5. 在结构区域定义控制路...

vue打开新窗口并且实现传参,有图有真相

我要实现的功能是打开一个新窗口用来展示新页面,而且需要传参数,并且参数不能显示在地址栏里面,而且当我刷新页面的时候,传过来的参数不能丢失,要一直存在,除非我手动关闭这个新窗口,即浏览器的标签页。通过面向百度编程,发现网上的根本达不到这个效果,而且还都是坑,明明实现不了,还若有其事的写出来,于是我在标...