SonarQube 9.9.4 LTS社区版安装

目标

安装个SonarQube社区版.

安装SonarQube9.9.4 LTS社区版

https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-9.9.4.87374.zip

bash 复制代码
# 切换到安装目录
cd /opt
# 下载安装包
sudo wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-9.9.4.87374.zip
# 解压
sudo unzip sonarqube-9.9.4.87374.zip
# 创建用户和用户组
sudo useradd --system --home /home/sonarqube --shell /sbin/nologin --comment "sonarqube user" --user-group sonarqube
# 分配权限
sudo chown -R sonarqube:sonarqube /opt/sonarqube-9.9.4.87374
# 创建配置文件
sudo vim /etc/systemd/system/sonarqube.service

内容:

bash 复制代码
[Unit]
Description=sonarqube
After=syslog.target network.target
  
[Service]
Type=forking
User=sonarqube
Group=sonarqube
WorkingDirectory=/opt/sonarqube-9.9.4.87374/
ExecStart=/opt/sonarqube-9.9.4.87374/bin/linux-x86-64/sonar.sh start
ExecReload=/opt/sonarqube-9.9.4.87374/bin/linux-x86-64/sonar.sh restart
ExecStop=/opt/sonarqube-9.9.4.87374/bin/linux-x86-64/sonar.sh stop

[Install]
WantedBy=multi-user.target

继续:

bash 复制代码
# 运行SonarQube
sudo systemctl start sonarqube
# 查看状态
systemctl status sonarqube

如果状态没问题打开,9000端口的页面,输入admin/admin账号,修改admin密码后,开始参加凭证。如下图:

点击Copy,复制凭证,然后,转到jenkins界面,开始创建一个凭证。

安装jenkins支持sonarqube插件:

在配置好Jenkins后,再再Jenkinsfile文件中配置,如下阶段:

json 复制代码
stage('Static Code Analysis') {
          environment {
            SONAR_URL = "http://127.0.0.1:9000"
          }
          steps {
            withCredentials([string(credentialsId: 'sonarqube', variable: 'SONAR_AUTH_TOKEN')]) {
              sh '''
                mvn sonar:sonar -Dsonar.login=$SONAR_AUTH_TOKEN -Dsonar.host.url=${SONAR_URL}
              '''
            }
          }
        }

整体文件如下:

json 复制代码
pipeline {
    agent any
    tools {
        jdk 'bellsoft-jdk17.0.10'
        maven '3.6.3'
    }
    stages {
        stage('Check tool version') {
            steps {
                sh '''
                    env | grep -e PATH -e JAVA_HOME
                    which java
                    java -version
                    which mvn
                    mvn --version
                '''
            }
        }
        stage('Build') {
            steps {
                sh '''
                    mvn clean && mvn package -Dmaven.test.skip=true
                '''
            }
        }
        stage('Static Code Analysis') {
          environment {
            SONAR_URL = "http://127.0.0.1:9000"
          }
          steps {
            withCredentials([string(credentialsId: 'sonarqube', variable: 'SONAR_AUTH_TOKEN')]) {
              sh '''
                mvn sonar:sonar -Dsonar.login=$SONAR_AUTH_TOKEN -Dsonar.host.url=${SONAR_URL}
              '''
            }
          }
        }
    }
}

最后效果如下:

参考:

相关推荐
魔法阵维护师6 小时前
Linux 命令行入门踩坑记录:从 VMware 装系统到文件管理
linux·运维·服务器
Apipi*6 小时前
30天速通Linux 第七章进程间通信
linux·运维·服务器
emo_2b6 小时前
Pycharm配置conda解释器时遇到的问题及解决方法
linux·pycharm·conda
人生百态,人生如梦7 小时前
Ubuntu在低版本下使用ccswitch+claudecode(CCSwitch+Docker+Claude)连调教程
linux·ubuntu·docker·claudecode·ccswitch
byte轻骑兵7 小时前
【BlueZ】hciconfig 工具:蓝牙适配器管理实操 + 源码实现基础
linux·bluez·电脑蓝牙·嵌入式蓝牙
SKH.7 小时前
Linux驱动-系统移植
linux·服务器
根目录下的猫7 小时前
虚拟机复制过来运行时:“虚拟机使用的此版本,VMware Workstation 不支持的硬件版本。”错误解决办法,亲测可用
linux·运维·服务器·后端
yunwei378 小时前
eBPF 入门实践教程十七:编写 eBPF 程序统计随机/顺序磁盘 I/O
linux·后端·性能优化
帷幕落秋8 小时前
内存、虚拟内存与 OOM
linux·运维
dingdingfish8 小时前
TLPI 第41章 读书笔记:Fundamentals of Shared Libraries
linux·static·link·dynamic·library·tlpi