Rocky linux9安装最新版sonarqube-26.10.0

目录

前言:

一、环境准备

1、基础软件及用户

2、JDK

[3、安装 PostgreSQL](#3、安装 PostgreSQL)

[二、PostgreSQL 数据库相关设置](#二、PostgreSQL 数据库相关设置)

1、登录数据库

2、创建数据库及用户并授权

三、SonarQube安装

1、下载SonarQube安装包

[2、解压 SonarQube 包](#2、解压 SonarQube 包)

3、创建专用用户并授权

[4、配置 sonar.properties](#4、配置 sonar.properties)

5、调整系统内核参数

6、启动SonarQube

7、访问页面

[8、配置 systemd 服务](#8、配置 systemd 服务)

四、错误处理

[1、PostgreSQL 认证方式不匹配](#1、PostgreSQL 认证方式不匹配)

五、与Jenkins集成

[1、Jenkins SonarQube Scanner插件安装](#1、Jenkins SonarQube Scanner插件安装)

[2、SonarQube Scanner安装](#2、SonarQube Scanner安装)

3、Jenkins配置SonarQube服务器地址

4、将SonarQube应用于项目


前言:

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的集成过程,内容供参考,实际部署过程中根据情况进行相应配置。

相关推荐
逐流人4 小时前
DevOps 入门实战(一):从 CI/CD 概念到 Jenkins 自动构建部署
运维·云原生·云计算·jenkins·devops
Lyy2 天前
DevOps平台 — 第十九篇:消息通知与预警的设计与实现
后端·devops·vibecoding
lsc_blog2 天前
年底还在招的岗位,先确认缺口和到岗要求
git·缓存·ci/cd·职场和发展·github
AKA__Zas2 天前
接口自动化测试(1.0 初认识
python·ci/cd·学习方法
长不大的杨瑞杰3 天前
OpenCode v2 配置工程实战:Config 优先级、JSONC、变量替换与多环境治理
人工智能·安全·云计算·软件工程·devops
cakeism8253 天前
2026 中国企业 DevOps 平台选型:从工具链到一体化平台的决策框架
运维·servlet·devops
十二同学啊3 天前
Go 工程化详解:项目结构、代码规范、测试体系与 CI/CD 实践
ci/cd·golang·代码规范
Sakura_j_h_4 天前
GitHub Actions 打包 Windows exe:中文编码与产物上传
windows·ci/cd·打包发布·github·pyinstaller·github actions
砚底藏山河4 天前
量化回测可复现流水线CI化
java·python·ci/cd·金融