sonarqube

2022-01-09/2022-01-09

1. 简介

sonarqube 是一个代码质量检测工具。

2. 安装

官网:https://www.sonarqube.org/

我们采用 docker-compose 方式安装。

先将配置文件复制出来。

1docker cp sonarqube:/opt/sonarqube/conf /dockerData/sonarqube/conf

启动

 1version: '3'
 2services:
 3  sonarqube:
 4    image: sonarqube
 5    container_name: sonarqube
 6    restart: always
 7    ports:
 8      - 9000:9000
 9      - 9092:9092
10    volumes:
11      - /dockerData/sonarqube/conf:/opt/sonarqube/conf

安装完成后,即可通过 9000 端口访问。

初始账号密码皆为 admin

3. 配置

安装中文插件

image-20220109142636521

数据库

高版本不可使用 mysql, 我们使用默认的 H2,无需做任何配置

4. 使用

4.1 mvn 使用

在我的账号 -> 安全 -> 生成令牌 token

4.1.1 全局配置

编辑 .m2 中的 settings.xml 文件

添加如下配置:

 1<?xml version="1.0" encoding="UTF-8"?>
 2<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd"
 3  xmlns="http://maven.apache.org/SETTINGS/1.1.0"
 4  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 5  <pluginGroups>
 6    <pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
 7  </pluginGroups>
 8
 9  <profiles>
10    <profile> 
11      <id>sonar</id>  
12      <activation> 
13        <activeByDefault>true</activeByDefault> 
14      </activation>  
15      <properties> 
16        <sonar.host.url>自己的地址</sonar.host.url> 
17      </properties> 
18    </profile>  
19  </profiles>
20  <activeProfiles>
21    <activeProfile>sonar</activeProfile>
22  </activeProfiles>
23</settings>

分析

1mvn sonar:sonar -Dsonar.login={token}

4.1.2 单个项目配置

引入插件

1<plugin>
2    <groupId>com.xiaomi.sonarsource.scanner.maven</groupId>
3    <artifactId>sonar-maven-plugin</artifactId>
4</plugin>

进行分析

1mvn sonar:sonar -Dsonar.login={token} -Dsonar.host.url=域名

生成本地报告

1mvn sonar:sonar -Dsonar.login={token} -Dsonar.report=true -Dsonar.host.url=域名

4.2 SonarScanner 方式

下载地址:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/

下载解压后配置环境变量

1export PATH=$PATH:/usr/local/sonar-scanner/bin

配置 sonarqube 地址

编辑 $install_directory/conf/sonar-scanner.properties:

1sonar.host.url=http://localhost:9000

在需要扫描的项目的根目录下添加 sonar-project.properties

 1# projectKey 是项目的唯一标识,不能出现重复,可随意起
 2sonar.projectKey=my:project
 3
 4# --- optional properties ---
 5# 不能是中文
 6#sonar.projectName=My project
 7# defaults to 'not provided'
 8#sonar.projectVersion=1.0
 9 
10# Path is relative to the sonar-project.properties file. Defaults to .,项目源代码目录
11#sonar.sources=.
12 
13# Encoding of the source code. Default is default system encoding
14#sonar.sourceEncoding=UTF-8

执行扫描

1sonar-scanner -Dsonar.login=myAuthenticationToken

评论
发表评论
       
       
取消