目录
[3、安装 PostgreSQL](#3、安装 PostgreSQL)
[二、PostgreSQL 数据库相关设置](#二、PostgreSQL 数据库相关设置)
[2、解压 SonarQube 包](#2、解压 SonarQube 包)
[4、配置 sonar.properties](#4、配置 sonar.properties)
[8、配置 systemd 服务](#8、配置 systemd 服务)
[1、PostgreSQL 认证方式不匹配](#1、PostgreSQL 认证方式不匹配)
[1、Jenkins SonarQube Scanner插件安装](#1、Jenkins SonarQube Scanner插件安装)
[2、SonarQube Scanner安装](#2、SonarQube Scanner安装)
前言:
SonarQube是一款自动化静态代码质量与安全分析平台。该平台通过静态代码分析,在开发阶段检测代码中的错误、漏洞和代码异味,并提供反馈。下面以Rocky Linux9 环境为例,整理一份基于 sonarqube-26.10.0.133078.zip 的安装过程。该版本属于 SonarQube 26.x 系列,建议按官方 26.x 文档核对 JDK、PostgreSQL 等版本要求。
一、环境准备
1、基础软件及用户
建议在 Linux 服务器上准备以下依赖:
| 依赖 | 建议版本 | 说明 |
|---|---|---|
| JDK | JDK 17 或 JDK 21 | 以 SonarQube 26.x 官方要求为准 |
| PostgreSQL | 13--17 | 生产环境不建议使用内置 H2 数据库 |
| unzip | 任意 | 用于解压 zip 包 |
| 普通用户 | 非 root | SonarQube 不能用 root 启动 |
2、JDK
本文选择JDK21,安装过程省略,完成后确认结果如下:
bash
java -version
openjdk version "21.0.12.1" 2026-08-18 LTS
OpenJDK Runtime Environment (Red_Hat-21.0.12.1.1-1) (build 21.0.12.1+1-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-21.0.12.1.1-1) (build 21.0.12.1+1-LTS, mixed mode, sharing)
3、安装 PostgreSQL
安装命令如下:
bash
--安装软件包
sudo yum install -y postgresql-server postgresql-contrib
--初始化数据库
sudo postgresql-setup --initdb
--设置开机启动
sudo systemctl enable --now postgresql
二、PostgreSQL 数据库相关设置
1、登录数据库
命令如下:
bash
sudo -u postgres psql
2、创建数据库及用户并授权
命令如下,如果 PostgreSQL 开启了远程访问,还需检查 pg_hba.conf 和 postgresql.conf,确保 SonarQube 所在用户能正常连接。
bash
CREATE DATABASE sonarqube;
CREATE USER sonar WITH PASSWORD 'Sonar@2026';
GRANT ALL PRIVILEGES ON DATABASE sonarqube TO sonar;
ALTER DATABASE sonarqube OWNER TO sonar;
\q
三、SonarQube安装
1、下载SonarQube安装包
官网下载地址为:SonarQube Download Success | Community Build | Sonar,下载完成后在相应目录可以看到SonarQube压缩包
bash
-rw-r--r-- 1 root root 949978521 Oct 21 09:21 sonarqube-26.10.0.133078.zip
2、解压 SonarQube 包
命令如下:
bash
mkdir -p /opt/sonarqube
unzip sonarqube-26.10.0.133078.zip -d /opt/sonarqube/
解压后目录可能类似:/opt/sonarqube/sonarqube-26.10.0.133078
3、创建专用用户并授权
SonarQube 不能以 root 用户启动,必须使用普通用户。
bash
sudo useradd -m -s /bin/bash sonar
sudo chown -R sonar:sonar /opt/sonarqube/sonarqube-26.10.0.133078
4、配置 sonar.properties
编辑配置文件:
bash
vim /opt/sonarqube/sonarqube-26.10.0.133078/conf/sonar.properties
--添加或修改数据库配置
sonar.jdbc.username=sonar
sonar.jdbc.password=Sonar@2026
sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonarqube
--如需调整内存,可继续配置
sonar.web.javaOpts=-Xmx2048m -Xms2048m
sonar.ce.javaOpts=-Xmx4096m -Xms4096m
sonar.search.javaOpts=-Xmx2048m -Xms2048m
--如果服务器上有多个 JDK 版本,可以通过环境变量指定(此处以JDK17为例)
export SONAR_JAVA_PATH=/usr/lib/jvm/java-17-openjdk/bin/java
5、调整系统内核参数
SonarQube 内嵌 Elasticsearch,对系统参数有要求。
bash
sudo vim /etc/sysctl.conf
--添加
vm.max_map_count=524288
fs.file-max=131072
添加配置完成后,执行命令sudo sysctl -p使之生效。
配置文件句柄和线程数限制:
bash
sudo vim /etc/security/limits.conf
--添加
sonar soft nofile 65536
sonar hard nofile 65536
sonar soft nproc 4096
sonar hard nproc 4096
6、启动SonarQube
切换到 sonar 用户启动:
bash
su - sonar
cd /opt/sonarqube/sonarqube-26.10.0.133078/bin/linux-x86-64
./sonar.sh start
--启动结果
/usr/bin/java
Starting SonarQube...
Removed stale pid file: ./SonarQube.pid
Started SonarQube.
查看状态:
bash
./sonar.sh status
/usr/bin/java
SonarQube is running (4488).
查看日志:
bash
./sonar.sh status
/usr/bin/java
SonarQube is running (4488).
[sonar@jenkins linux-x86-64]$ tail -f /opt/sonarqube/sonarqube-26.10.0.133078/logs/sonar.log
2026.10.28 10:43:16 INFO app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /opt/sonarqube/sonarqube-26.10.0.133078/temp
2026.10.28 10:43:16 INFO app[][o.s.a.es.EsSettings] Elasticsearch listening on [HTTP: 127.0.0.1:9001, TCP: 127.0.0.1:{}]
2026.10.28 10:43:16 INFO app[][o.s.a.ProcessLauncherImpl] Launch process[ELASTICSEARCH] from [/opt/sonarqube/sonarqube-26.10.0.133078/elasticsearch]: /usr/lib/jvm/java-21-openjdk-21.0.12.1.1-1.2.el9_8.x86_64/bin/java -Xms4m -Xmx64m -XX:+UseSerialGC -cp /opt/sonarqube/sonarqube-26.10.0.133078/elasticsearch/lib/tools/server-launcher/* org.elasticsearch.server.launcher.ServerLauncher
2026.10.28 10:43:16 INFO app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
2026.10.28 10:43:45 INFO app[][o.s.a.SchedulerImpl] Process[es] is up
2026.10.28 10:43:45 INFO app[][o.s.a.ProcessLauncherImpl] Launch process[WEB_SERVER] from [/opt/sonarqube/sonarqube-26.10.0.133078]: /usr/lib/jvm/java-21-openjdk-21.0.12.1.1-1.2.el9_8.x86_64/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/opt/sonarqube/sonarqube-26.10.0.133078/temp -XX:-OmitStackTraceInFastThrow --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED -Xmx1024m -Xms1024m -Dhttp.nonProxyHosts=localhost|127.*|[::1] -cp ./lib/sonar-application-26.10.0.133078.jar:/opt/sonarqube/sonarqube-26.10.0.133078/lib/jdbc/postgresql/postgresql-42.7.13.jar org.sonar.server.app.WebServer /opt/sonarqube/sonarqube-26.10.0.133078/temp/sq-process16163412727474114809properties
2026.10.28 10:44:13 INFO app[][o.s.a.SchedulerImpl] Process[web] is up
2026.10.28 10:44:13 INFO app[][o.s.a.ProcessLauncherImpl] Launch process[COMPUTE_ENGINE] from [/opt/sonarqube/sonarqube-26.10.0.133078]: /usr/lib/jvm/java-21-openjdk-21.0.12.1.1-1.2.el9_8.x86_64/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/opt/sonarqube/sonarqube-26.10.0.133078/temp -XX:-OmitStackTraceInFastThrow --add-opens=java.base/java.util=ALL-UNNAMED --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED -Xmx2048m -Xms2048m -Dhttp.nonProxyHosts=localhost|127.*|[::1] -cp ./lib/sonar-application-26.10.0.133078.jar:/opt/sonarqube/sonarqube-26.10.0.133078/lib/jdbc/postgresql/postgresql-42.7.13.jar org.sonar.ce.app.CeServer /opt/sonarqube/sonarqube-26.10.0.133078/temp/sq-process10978466933398427147properties
2026.10.28 10:44:23 INFO app[][o.s.a.SchedulerImpl] Process[ce] is up
2026.10.28 10:44:23 INFO app[][o.s.a.SchedulerImpl] SonarQube is operational
7、访问页面
启动成功后,浏览器访问:http://<服务器IP>:9000,默认登录账号,用户名:admin 密码:admin,首次登录后需要修改 admin 密码。

登录成功后进入主界面:

8、配置 systemd 服务
如果希望开机自启,可以创建服务文件:
bash
sudo vim /etc/systemd/system/sonarqube.service
--增加如下内容:
[Unit]
Description=SonarQube Service
After=network.target postgresql.service
[Service]
Type=forking
User=sonar
Group=sonar
ExecStart=/opt/sonarqube/sonarqube-26.10.0.133078/bin/linux-x86-64/sonar.sh start
ExecStop=/opt/sonarqube/sonarqube-26.10.0.133078/bin/linux-x86-64/sonar.sh stop
LimitNOFILE=65536
LimitNPROC=4096
Restart=on-failure
[Install]
WantedBy=multi-user.target
启动服务:
bash
sudo systemctl daemon-reload
sudo systemctl enable --now sonarqube
查看服务状态:
bash
systemctl status sonarqube.service
● sonarqube.service - SonarQube Service
Loaded: loaded (/etc/systemd/system/sonarqube.service; enabled; preset: disabled)
Active: active (running) since Wed 2026-10-28 13:20:10 CST; 32s ago
Process: 1102 ExecStart=/opt/sonarqube/sonarqube-26.10.0.133078/bin/linux-x86-64/sonar.sh start (code=exited, status=0/SUCCESS)
Main PID: 1160 (java)
Tasks: 75 (limit: 35636)
Memory: 1.4G (peak: 1.4G)
CPU: 54.200s
CGroup: /system.slice/sonarqube.service
├─1160 java --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/sun.ni>
├─2400 /usr/lib/jvm/java-21-openjdk-21.0.12.1.1-1.2.el9_8.x86_64/bin/java -Xms4m -Xmx64m -XX:+UseSerialGC -cp "/opt/sonarqube/sonarqube-2>
└─3285 /usr/lib/jvm/java-21-openjdk-21.0.12.1.1-1.2.el9_8.x86_64/bin/java -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.nega>
Oct 28 13:20:09 jenkins systemd[1]: Starting SonarQube Service...
Oct 28 13:20:09 jenkins sonar.sh[1102]: /usr/bin/java
Oct 28 13:20:09 jenkins sonar.sh[1102]: Starting SonarQube...
Oct 28 13:20:10 jenkins sonar.sh[1102]: Started SonarQube.
Oct 28 13:20:10 jenkins systemd[1]: Started SonarQube Service.
lines 1-18/18 (END)
四、错误处理
1、PostgreSQL 认证方式不匹配
启动sonarqube后sonar.log日志中报如下错误:
bash
2026.10.21 10:32:10 INFO app[][o.s.a.ProcessLauncherImpl] Launch process[WEB_SERVER] from [/opt/sonarqube/sonarqube-26.10.0.133078]: /usr/lib/jvm/java-21-openjdk-21.0.12.1.1-1.2.el9_8.x86_64/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/opt/sonarqube/sonarqube-26.10.0.133078/temp -XX:-OmitStackTraceInFastThrow --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED -Xmx2048m -Xms2048m -Dhttp.nonProxyHosts=localhost|127.*|[::1] -cp ./lib/sonar-application-26.10.0.133078.jar:/opt/sonarqube/sonarqube-26.10.0.133078/lib/jdbc/postgresql/postgresql-42.7.13.jar org.sonar.server.app.WebServer /opt/sonarqube/sonarqube-26.10.0.133078/temp/sq-process10911027711759763100properties
2026.10.21 10:32:16 INFO app[][o.s.a.SchedulerImpl] Process[Web Server] is stopped
2026.10.21 10:32:16 WARN app[][o.s.a.p.AbstractManagedProcess] Process exited with exit value [ElasticSearch]: 143
2026.10.21 10:32:16 INFO app[][o.s.a.SchedulerImpl] Process[ElasticSearch] is stopped
基础配置分析:
(1)、内存方面
sonarqube配置文件中,内存相关配置如下:
sonar.web.javaOpts=-Xmx1024m -Xms1024m
sonar.ce.javaOpts=-Xmx2048m -Xms2048m
sonar.search.javaOpts=-Xmx1024m -Xms1024m
这三个堆内存加起来约 4GB,而操作系统总内存为8G,同时通过free -m命令查看内存使用情况,内存并未满。如果显示内存满,可适当调小以上参数。
(2)、目录权限
/opt/sonarqube/sonarqube-26.10.0.133078目录所有者应当为用户sonar。然后确认启动用户命令whoami。
(3)、端口
命令:ss -tlnp | grep 9000查看9000端口是否被占用。
(4)、其它日志
可查看/opt/sonarqube/sonarqube-26.10.0.133078/logs/web.log日志中的内容进行分析。
(5)、清理可能的损坏缓存
如果之前启动失败过,temp 目录可能残留锁文件。先停服务,然后执行清理命令:
rm -rf /opt/sonarqube/sonarqube-26.10.0.133078/temp/*
(6)、确认 PostgreSQL数据库正常
sonar 用户测试连接:
su - sonar psql -h localhost -U sonar -d sonarqube
在这一步中发现了问题所在,报错信息如下:
bash
psql -h localhost -U sonar -d sonarqube
psql: error: FATAL: Ident authentication failed for user "sonar"
报错是 PostgreSQL 认证方式不匹配
这里用了 -h localhost,属于 TCP/IP 连接。但 pg_hba.conf 里对 127.0.0.1/::1 的 host 行配置了 ident,所以 PostgreSQL 会尝试通过 ident 机制校验操作系统用户,而不是校验数据库密码。
当前系统用户是 root,数据库用户是 sonar,两者不一致。
解决方法:
修改 pg_hba.conf,命令sudo vim /var/lib/pgsql/data/pg_hba.conf把类似这一行:
host all all 127.0.0.1/32 ident
改成:
host all all 127.0.0.1/32 scram-sha-256
之后重启PostgreSQL,systemctl reload postgresql再次测试连接。
再次报错:psql: error: FATAL: password authentication failed for user "sonar"
现在这个报错说明 pg_hba.conf 已经生效,PostgreSQL 确实进入了密码认证流程,但密码校验不通过。最常见的原因是:你之前设置的密码是 MD5 哈希,而 pg_hba.conf 现在要求 scram-sha-256,两者不匹配。
按下面步骤做,基本能解决。
a. 先用超级用户无密码进入数据库
命令sudo -u postgres psql
b.确认密码加密方式
进入 psql 后执行:SHOW password_encryption;
如果返回 md5,而 pg_hba.conf 里配置的是 scram-sha-256,就会认证失败。统一改成:
ALTER SYSTEM SET password_encryption = 'scram-sha-256';
SELECT pg_reload_conf();
c.重新设置 sonar 用户密码
这一步很关键,必须重新执行一次:
ALTER ROLE sonar WITH PASSWORD 'Sonar@2026';
然后确认密码哈希格式:
SELECT rolname, rolpassword FROM pg_authid WHERE rolname = 'sonar';
rolpassword 应该以:SCRAM-SHA-256$开头。如果仍然是 md5 开头,说明还没有真正用 scram 格式存储,需要再执行一次上面的 ALTER ROLE。
d.确认 pg_hba.conf 规则正确
再次检查:vim /var/lib/pgsql/data/pg_hba.conf确保有类似这一行:
host all all 127.0.0.1/32 scram-sha-256
并且它 排在前面 ,不要被后面的 reject 或其他规则覆盖。
修改后执行:
sudo systemctl reload postgresql
e.重新测试连接
psql -h localhost -U sonar -d sonarqube -W输入:Sonar@2026 如果成功进入,再启动 SonarQube,并查看日志:
bash
su - sonar
cd /opt/sonarqube/sonarqube-26.10.0.133078/bin/linux-x86-64
./sonar.sh start
tail -f /opt/sonarqube/sonarqube-26.10.0.133078/logs/web.log
启动成功,日志中没有错误内容。sonarqube页面可正常访问。
五、与Jenkins集成
在CI/CD流程配置中,应用Jenkins配置流水线作业,而SonarQube常做为自动化代码审查、安全漏洞检测(SAST/SCA)、技术债务跟踪工具与Jenkins相集成。
1、Jenkins SonarQube Scanner插件安装
首先需要安装SonarQube Scanner插件,此文以Jenkins2.5.85版本为例。在Jenkins插件管理可用插件列表中搜索SonarQube Scanner,选中后进行安装,安装完成后在"已安装插件"列表中可以找到此插件,并查看其健康程度。如图所示:

2、SonarQube Scanner安装
插件安装完成后,安装SonarQube Scanner工具。在Jenkins全局系统工具配置里,以手动安装方式进行安装。
a.下载对应操作系统的SonarScanner8.1版本,如图所示。下载地址:SonarScanner CLI | SonarQube Server | Sonar Documentation

b.解压缩zip包
将下载后的压缩包解压至/opt/sonar-scanner目录,解压后路径为/opt/sonar-scanner/sonar-scanner-8.1.0/。解压后目录内容如下:
bash
/opt/sonar-scanner/sonar-scanner-8.1.0
ls -l
total 0
drwxr-xr-x 2 root root 54 Oct 29 11:01 bin
drwxr-xr-x 2 root root 38 Oct 29 13:56 conf
drwxr-xr-x 6 root root 82 Oct 29 11:01 jre
drwxr-xr-x 2 root root 46 Oct 29 11:01 lib
c.配置PATH
bash
--增加一个环境变量文件
sudo tee /etc/profile.d/sonar-scanner.sh <<'EOF'
export PATH=$PATH:/opt/sonar-scanner/sonar-scanner-8.1.0/bin
EOF
--加载环境变量文件
source /etc/profile.d/sonar-scanner.sh
--验证环境变量配置
sonar-scanner -v
14:37:16.306 INFO Scanner configuration file: /opt/sonar-scanner/sonar-scanner-8.1.0/conf/sonar-scanner.properties
14:37:16.312 INFO Project root configuration file: NONE
14:37:16.335 INFO SonarScanner CLI 8.1.0.6389
14:37:16.345 INFO Linux 5.14.0-687.54.1.el9_8.x86_64 amd64
d.配置 SonarQube 连接(可选)
bash
sudo vi /opt/sonar-scanner/sonar-scanner-8.0.1/conf/sonar-scanner.properties
sonar.host.url=http://<你的SonarQube地址>:9000
e.Jenkins 全局工具配置
点击"新增SonarQube Scanner",Name中输入任意名字,SONAR_RUNNER_HOME中输入sonar-scanner所在路径,最后点击"Save"按钮

3、Jenkins配置SonarQube服务器地址
a、首先在Jenkins中增加凭据,点击"Add Credientials"按钮后选择"Secret test"类型,之后在弹出的界面中点击"Next"按钮。


b、在这一步中输入秘钥,之后点击"Create"按钮,生成一个SonarQube凭据。

c、SonarQube密钥生成方法
在上一步的配置中,Jenkins配置的是访问SonarQube的密钥,所以密钥需要在SonarQube中配置,配置方法在SonarQube中的安全管理里,如图所示,填写Name,选择Type,最后点击"Generate"按钮:

d、回到Jenkins系统配置里,配置SonarQube服务填写Name,Server URL填写Jenkins地址,最后,选择刚才配置的凭据,如图所示:

4、将SonarQube应用于项目
a、以自由风格的项目为例
在项目配置中"增加构建步骤",选择"Execute SonarQube Scanner" ,如图所示。 
在SonarQube Installation中输入第3步,d操作中的名字,JDK选择Jenkins配置好的JDK--java-21,Analysis properties输入内容参考如下,注意项目名字和排除路径:
bash
# must be unique in a given SonarQube instance
sonar.projectKey=webdemo_freestyle
# this is the name and version displayed in the SonarQube UI. Was mandatory prior to
# SonarQube 6.1.
sonar.projectName=webdemo_freestyle
sonar.projectVersion=1.0
# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# This property is optional if sonar.modules is set.
sonar.sources=.
sonar.exclusions=**/test/**,**/target/**
sonar.java.source=21
sonar.java.target=21
# Encoding of the source code. Default is default system encoding
sonar.sourceEncoding=UTF-8
整体配置完成如图所示:

b.再次构建项目,如图所示

c.控制台输出检查
在控制台输出中查看项目是否调用了SonarQube代码检查,从第一行可以看出该项目成功调用SonarQube Scanner,并完成构建。
注意:此步骤有个前提条件,即之前Gitlab和Jenkins完成集成,Jenkins可正常从Gitlab上拉取代码。
bash
[webdemo_freestyle] $ /opt/sonar-scanner/sonar-scanner-8.1.0/bin/sonar-scanner -Dsonar.host.url=http://192.168.100.130:9000/ ******** -Dsonar.java.target=21 -Dsonar.projectKey=webdemo_freestyle -Dsonar.projectName=webdemo_freestyle -Dsonar.sourceEncoding=UTF-8 -Dsonar.projectVersion=1.0 -Dsonar.java.source=21 -Dsonar.sources=. -Dsonar.exclusions=**/test/**,**/target/** -Dsonar.projectBaseDir=/var/lib/jenkins/workspace/webdemo_freestyle
14:03:59.006 INFO Scanner configuration file: /opt/sonar-scanner/sonar-scanner-8.1.0/conf/sonar-scanner.properties
14:03:59.011 INFO Project root configuration file: NONE
14:03:59.030 INFO SonarScanner CLI 8.1.0.6389
14:03:59.037 INFO Linux 5.14.0-687.54.1.el9_8.x86_64 amd64
--中间略过部分内容
14:04:42.116 INFO ANALYSIS SUCCESSFUL, you can find the results at: http://192.168.100.130:9000/dashboard?id=webdemo_freestyle
14:04:42.116 INFO Note that you will be able to access the updated dashboard once the server has processed the submitted analysis report
14:04:42.116 INFO More about the report processing at http://192.168.100.130:9000/api/ce/task?id=038aee36-e9ac-478c-84f8-990e6a95b693
14:04:42.277 INFO Analysis total time: 33.561 s
14:04:42.293 INFO SonarScanner Engine completed successfully
14:04:42.334 INFO EXECUTION SUCCESS
14:04:42.335 INFO Total time: 43.332s
[DeployPublisher][INFO] Attempting to deploy 1 war file(s)
[DeployPublisher][INFO] Deploying /var/lib/jenkins/workspace/webdemo_freestyle/target/webdemo.war to container Tomcat 9.x Remote with context null
Redeploying [/var/lib/jenkins/workspace/webdemo_freestyle/target/webdemo.war]
Undeploying [/var/lib/jenkins/workspace/webdemo_freestyle/target/webdemo.war]
Deploying [/var/lib/jenkins/workspace/webdemo_freestyle/target/webdemo.war]
Finished: SUCCESS
d.SonarQube中查看
登录http:<ip>:9000在SonarQube界面中可以看到webdemo_freestyle项目已经在项目列表中,如图所示:

以上步骤完成了SonarQube的安装以及与Jenkins的集成过程,内容供参考,实际部署过程中根据情况进行相应配置。