安装SonarQube 8.3版本
准备工作
- 准备一台CentOS 7服务器
- SonarQube 8.3版本只支持Java 11 (下载Java 11)
安装PostgreSQL 12.0
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install postgresql12-server
/usr/pgsql-12/bin/postgresql-12-setup initdb
systemctl enable postgresql-12
systemctl start postgresql-12
# 安装后的数据库data目录
cd /var/lib/pgsql/12/data
# 修改配置
vi pg_hba.conf
host all all 0.0.0.0/0 md5
vi postgresql.conf
listen_addresses = '*'
systemctl restart postgresql-12
# 客户端程序目录
cd /usr/pgsql-12/bin
# 安装的时候会自动创建postgres用户密码为空
su postgres
bash-4.2$ psql
psql (12.3)
输入 "help" 来获取帮助信息.
# 修改管理员密码(默认是随机密码)
ALTER USER postgres WITH PASSWORD 'postgres';
# 退出
\q
安装服务端程序
# 上传SQ v8.3
scp /Users/sunweisheng/Downloads/sonarqube-8.3.1.34397.zip root@sq.bluersw.com:/opt/
# 上传Java 11
scp /Users/sunweisheng/Downloads/jdk-11.0.7_linux-x64_bin.tar root@sq.bluersw.com:/opt/
# 解压缩
yum install zip unzip
cd /opt
tar -xvf jdk-11.0.7_linux-x64_bin.tar
# 一定用ZIP解压缩原始文件,否则会产生很多._XXX的隐藏文件,使程序报错
unzip sonarqube-8.3.1.34397.zip
# 创建用户
groupadd sonar
useradd sonar -g sonar
passwd sonar
chown -R sonar.sonar /opt/jdk-11.0.7/
chown -R sonar.sonar /opt/sonarqube-8.3/
创建数据库
su postgres
bash-4.2$ psql
# 创建用户
create user sonar with password 'sonar';
# 创建数据库指定所属者
create database sonarqube owner=sonar encoding='UTF8';
# 将dbtest所有权限赋值给sonar
grant all on database sonarqube to sonar;
配置SonarQube
# 修改sonar.properties配置文件($SONARQUBE-HOME/conf/sonar.properties)
cd /opt/sonarqube-8.3/conf
vi sonar.properties
sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
# 系统安装的是Java 8,所以需要单独指定Java 11的路径
vi wrapper.conf
wrapper.java.command=/opt/jdk-11.0.7/bin/java
# elasticsearch需要改
vi /etc/sysctl.conf
vm.max_map_count=655360
sysctl -p
# sonar是启动elasticsearch的用户
vi /etc/security/limits.conf
sonar hard nofile 65536
sonar soft nofile 65536
手工启动检查日志排除错误
su sonar
# 第一次启动会有各种初始化过程
/opt/sonarqube-8.3/bin/linux-x86-64/sonar.sh start
# 查看logs文件夹下的日志文件,排查错误。千万用ZIP解压缩否则产生一堆隐藏文件和莫名错误
cat /opt/sonarqube-8.3/logs/sonar.log
cat /opt/sonarqube-8.3/logs/es.log
启动出现报错解决
el端口被占用,修改vim /opt/sonarqube-8.3/conf/sonar.properties
sonar.search.port=9090
创建服务
vi /etc/systemd/system/sonarqube.service
ExecStart中的路径请根据版本不同重新设置
[Unit]
Description=SonarQube service
After=syslog.target network.target
[Service]
Type=simple
User=sonar
Group=sonar
PermissionsStartOnly=true
ExecStart=/bin/nohup /opt/jdk-11.0.7/bin/java -Xms32m -Xmx32m -Djava.net.preferIPv4Stack=true -jar /opt/sonarqube-8.3/lib/sonar-application-8.3.1.34397.jar
StandardOutput=syslog
LimitNOFILE=65536
LimitNPROC=8192
TimeoutStartSec=5
Restart=always
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable sonarqube.service
systemctl start sonarqube.service
访问安装SonarQube
访问 http://192.168.60.214:9000/
默认用户名和密码都是:admin
Jenkins配置
下载sonarscanner-for-msbuild
jenkins Job项目分析配置
下面是C#代码编译
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?