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

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

ruisui883个月前 (01-31)技术分析15

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扫描仪器)” 的相关文章

给大家分享几个漂亮的 Arch Linux 发行版

ArchLinux是一款备受欢迎的、面向技术爱好者和Linux专业人士的发行版。它以其简洁、灵活和高度可定制的特点而闻名,但对于一些人来说,配置和设置ArchLinux可能会有一些挑战。为了方便那些希望快速入门并且喜欢漂亮外观的人,我们想分享几个令人赞叹的ArchLinux发行版,它们提供了美观的界...

我的VIM配置

写一篇关于VIM配置的文章,记录下自己的VIM配置,力求简洁实用。VIM的配置保存在文件~/.vimrc中(Windows下是C:\Users\yourname \_vimrc)。VIM除了自身可配置项外,还可插件扩展。VIM的插件一般用vundle或vim-plug来管理,但我力求简单,不打算装太...

三维家-系统快捷键使用

快键件使用:通过简单的键盘+鼠标操作,快速完成搭配。1.基础快捷键1) Ctrl+V:复制选中对象第一步:鼠标左击物体,按下Ctrl+V 即可复制选中对象。2) Ctrl+G:组合多选对象第一步:按住Ctrl键多选对象--按住Ctrl+G--确定。3) Ctrl+B:解组选中对象第一步:左击选中对象...

Vue中路由router的基本使用

??本文开始我们来给大家介绍在Vue中非常重要的一个内容,就是路由Router什么是路由后端路由:对于普通的网站,所有的超链接都是URL地址,所有的URL地址都对应服务器上对应的资源;前端路由:对于单页面应用程序来说,主要通过URL中的hash(#号)来实现不同页面之间的切换,同时,hash有一个特...

vue 开发规范

项目运行指南(#项目运行指南)开发本地环境(#开发本地环境)开发相关插件/工具(#开发相关插件工具)开发规范(#开发规范)vue(#vue)【数据流向】(#数据流向)【慎用全局注册】(#慎用全局注册)【组件名称】(#组件名称)【组件中的 CSS】(#组件中的-css)【统一标签顺序】(#统一标签顺序...

Vue进阶(二十六):详解router.push()

在Vue2.0路由跳转中,除了使用 <router-link> 声明式创建 a 标签来定义导航链接,还可以借助 router 的实例方法,通过编码式编写代码来实现。router.push(location)想要导航到不同的 URL,则使用 router.push 方法。这个方法会向 hi...