百度总监10分钟带你快速入门Sonar!

1.Sonar的概念:

Sonar的全称是SonarQube,是一种自动代码审查工具,用于检测代码中的错误,漏洞和代码异味。它可以与您现有的工作流程集成,以便在项目分支和拉取请求之间进行连续的代码检查。

2.安装Sonar服务器
在使用Sonar扫描代码之前,需要先安装好postgresql数据库和sonarqube服务,我采用docker的安装方式,具体文档参考这里

Sonar支持三种数据库,这里我选择PostgreSQL

安装PostgreSQL
容器启动成功后,用账号:postgres/postgres 登录测试

docker run -it --name postgres --restart always -e POSTGRES_PASSWORD='postgres' -e ALLOW_IP_RANGE=0.0.0.0/0 -v /opt/postgres/data:/var/lib/postgresql -p 5432:5432 -d postgres

安装sonarqube服务

docker run --rm --name sonarqube \
    -p 9000:9000 \
    -e SONAR_JDBC_URL=jdbc:postgresql://192.168.1.100:5432/postgres \
    -e SONAR_JDBC_USERNAME=postgres \
    -e SONAR_JDBC_PASSWORD=postgres \
    -v sonarqube_data:/opt/sonarqube/data \
    -v sonarqube_extensions:/opt/sonarqube/extensions \
    -v sonarqube_logs:/opt/sonarqube/logs \
    sonarqube

安装成功后,使用admin/admin账户访问,第一次登录需要修改密码,我修改为:admin123
http://192.168.1.100:9000

3. Maven工程集成sonar
经过测试发现,如果工程中不引入sonar插件也可以,执行mvn命令是会自动下载此插件

<plugin>
   <groupId>org.sonarsource.scanner.maven</groupId>
   <artifactId>sonar-maven-plugin</artifactId>
   <version>3.5.0.1254</version>
</plugin>

有两种编译方式

在mvn命令中通过 -D参数指定

mvn clean verify sonar:sonar -Dmaven.test.skip=true -Dsonar.host.url=http://192.168.1.100:9000 -Dsonar.login=admin -Dsonar.password=admin123

在pom.xml中添加配置属性

 <profiles>
       <profile>
           <id>sonar</id>
           <activation>
               <activeByDefault>true</activeByDefault>
           </activation>
           <properties>
               <sonar.jdbc.url>jdbc:postgresql://192.168.1.100:5432/postgres</sonar.jdbc.url>
               <sonar.jdbc.driver>org.postgresql.Driver</sonar.jdbc.driver>
               <sonar.jdbc.username>postgres</sonar.jdbc.username>
               <sonar.jdbc.password>postgres</sonar.jdbc.password>
               <sonar.host.url>http://192.168.1.100:9000</sonar.host.url>
               <sonar.login>admin</sonar.login>
               <sonar.password>admin123</sonar.password>
           </properties>
       </profile>
   </profiles>

因为工程里已经添加了sonar的属性,所以这里就简短了

mvn clean verify sonar:sonar -Dmaven.test.skip=true 

登录到sonar ,查看代码扫描结果
在这里插入图片描述
这里有几个名词解释下:

1.Bugs
代码里潜在的bug数,比如空指针异常等都能扫描到
vulnerabilities(脆弱性)
代码中存在的安全漏洞数
Hotspots Reviewed
安全热点数

2.code smells
代码之中潜在问题的警示信号,并非所有的坏味道所指示的确实是问题,但是对于大多数坏味道,均很有必要加以查看,并作出相应的修改。

3.coverage
是软件测试中的一种度量,描述程序中源代码被测试的比例和程度,所得比例称为代码覆盖率。在做单元测试时,代码覆盖率常常被拿来作为衡量测试好坏的指标

在这里推荐一个软件测试交流群,qq:642830685,群中会不定期的分享软件测试资源,测试面试题以及行业资讯。大家可以在群中积极交流技术,还有行业大佬为你答疑解惑。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值