Sonarqube——maven代码质量检测示例

2026-10-1 45 10/1

本篇讲述 Sonarqube的安装,以及两个使用例子

系统为  Ubuntu 虚拟机,如果做示例建议配置调高一些,不然运行缓慢甚至失败

采用docker安装执行任务

 

安装

首先docker pull 两个镜像:

sonarqube:community

postgres

遇到网络问题可以看网上教程换国内源再拉,拉取完后,写一个docker-compose

version: '3.1'
services:
  db:
    image: postgres
    container_name: db
    ports:
      - 5432:5432
    networks:
      - sonarnet
    environment:
      POSTGRES_USER: sonar
      POSTGRES_PASSWORD: sonar
  sonarqube:
    image: sonarqube:community
    container_name: sonarqube
    depends_on:
      - db
    ports:
      - 9000:9000
    networks:
      - sonarnet
    environment:
      SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
      SONAR_JDBC_USERNAME: sonar
      SONAR_JDBC_PASSWORD: sonar
networks:
  sonarnet:
    driver: bridger

然后 docker-compose up -d 执行    (没有docker-compose就apt/yum下载)

Sonarqube——maven代码质量检测示例

 

sonarqube:community 可能运行不起来,会报错提示虚拟内存不足

那就编辑  /etc/sysctl.conf  

再里面添加   vm.max_map_count=262144

sysctl -p   使其生效

重新启动,等待sonarqube加载完毕(可能好几分钟,观察sonar的docker日志判断),启动完成能在网站中访问http://IP:9000

第一次会要求登录,用户名与密码均为admin,然后换密码

登录进去后,先安装中文插件 ,再生成一个token,后面都有用

Sonarqube——maven代码质量检测示例

我配置过中文了,你可以按我的点击方式(图片中的位置),进入应用市场

往下拉,搜索chinese ,下载即可(会出现风险提示,必须点击“i understand the risk” 才能出现下载按钮)

下载完重启sonarqube,就变成中文了

token,点击右上角的个人头像,出现“我的账号”,进入,在“安全”一栏中找到

输入令牌名称,日期后,生成一个,仅出现一次,记得保存

 

 

代码质量检测

两种方式,

第一种,找到maven的目录,我的在/usr/share/maven

如果有用户级别配置,例如/sanopll/.m2/settings.xml  也要修改

进入maven/conf/settings.xml 中,添加

    <profile>
        <id>sonar</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <sonar.host.url>http://IP:9000</sonar.host.url>
            <sonar.token>保存的token</sonar.token>
        </properties>
    </profile>

 

加在<profiles> </profiles> 标签中,不会加可以问ai

加完后,切到你的maven代码文件目录,

执行 mvn sonar:sonar

就会检测代码,完成后会在网站看到

Sonarqube——maven代码质量检测示例

 

 

 

 

第二种,需要下载 sonar-scanner

https://binaries.sonarsource.com/?prefix=Distribution/sonar-scanner-cli/

按照你的版本需求来下载

下载完后,得到一个压缩包,自行解压,并放在合适的位置(我的位置是Jenkins的配置目录中)

进入解压好的文件夹,编辑conf/sonar-scanner.properties ,加入两行配置

# Configure here general information about the environment, such as the server connection details for example
# No information about specific project should appear here

#----- SonarQube server URL (default to SonarCloud)
sonar.host.url=http://IP:9000
sonar.sourceEncoding=UTF-8
#sonar.scanner.proxyHost=myproxy.mycompany.com
#sonar.scanner.proxyPort=8002

保存

 

其  bin/sonar-scanner  就为执行文件,记住位置

进入maven代码文件目录,输入命令

sonar-scanner/bin/sonar-scanner \
  -Dsonar.sources=./ \
  -Dsonar.projectname=maven-sonar \
  -Dsonar.login=token \
  -Dsonar.projectKey=maven-sonar \
  -Dsonar.java.binaries=./target/

#-Dsonar.sources=要检测的代码目录
#-Dsonar.projectname=写个项目名字
#-Dsonar.login=保存的token
#-Dsonar.projectKey=项目名字
#-Dsonar.java.binaries=编译完后的代码的位置

执行,成功,网站有

Sonarqube——maven代码质量检测示例

因为我是用root执行的命令,出现了一个安全问题

这就是其中两种sonarqube的使用方式

 

 

- THE END -

sanoplluser

10月01日21:47

最后修改:2026年10月1日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论