Sonarqube
1、准备
https://docs.sonarsource.com/sonarqube/latest/requirements/prerequisites-and-overview/
1.1 jdk
apt update && apt install openjdk-17 -jdk
1.2 postgresql
1、下载
cd /usr/local/src && wget -c https://ftp.postgresql.org/pub/source/v15.4/postgresql-15.4.tar.gz
2、前置准备
apt install make gcc
3、安装
cd /usr/local/src
tar xf postgresql-15.4.tar.gz
cd postgresql-15.4
mkdir /apps
./configure --prefix=/apps/
make -j 4
make install
adduser postgres
mkdir -p /apps/postgresql/data
chown postgres -R /apps/postgresql
su - postgres
export LD_LIBRARY_PATH=/apps/postgresql/lib
echo "export LD_LIBRARY_PATH=/apps/postgresql/lib" > ~/.bashrc
/apps/postgresql/bin/initdb -D /apps/postgresql/data
vim /apps/postgresql/data/pg_hba.conf
host all all 0.0.0.0/32 md5
vim /apps/postgresql/data/postgresql.conf
listen_addresses = '*'
/apps/postgresql/bin/pg_ctl -D /apps/postgresql/data -l /apps/postgresql/log/logfile start
ln -sv /apps/postgresql/bin/psql /usr/bin/
psql
create database sonar;
create user sonar;
alter user sonar with password 'sonar123456' ;
alter role sonar createdb;
alter role sonar superuser;
alter role sonar createrole;
alter database sonar owner to sonar;
exit
1.3 参数优化
sysctl vm.max_map_count
sysctl -w vm.max_map_count=524288
sysctl fs.file-max
sysctl -w fs.file-max=131072
ulimit -n
ulimit -n 131072
ulimit -u
ulimit -u 8192
echo vm.max_map_count=524288 >> /etc/sysctl.conf
echo fs.file-max=131072 >> /etc/sysctl.conf
echo sonarqube - nofile 1000000 >> /etc/security/limits.conf
echo sonarqube - nproc 819200 >> /etc/security/limits.conf
grep SECCOMP /boot/config-$(uname -r)
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_SECCOMP_FILTER=y
CONFIG_SECCOMP=y
reboot
1.4 字体包
apt install libfreetype6
2、架构
3、安装
3.1 zip安装(sonarqube)
3.1.1 下载
https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-10.3.0.82913.zip
3.1.2 配置
unzip sonarqube-10.3.0.82913.zip
cd sonarqube-10.3.0.82913
vim conf/sonar.properties
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar123456
sonar.jdbc.url=jdbc:postgresql://172.31.3.42/sonar
adduser sonarqube
su sonarqube
sonar start
3.1.3 插件安装
https://github.com/xuhuisheng/sonar-l10n-zh/tags
将jar包cp 到/apps/sonarqube/extensions/plugins
sonar restart
3.2 sonar-scanner
扫描器,可以和服务不在同一节点
3.2.1 zip安装
3.2.1.1 配置
https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-5.0.1.3006-linux.zip
vim /path/conf/sonar-project.properties
sonar.host.url=http://172.31.3.42:9000
sonar.sourceEncoding=UTF-8
3.2.1.2 使用
ln -sv /apps/sonar-scanner/bin/sonar-scanner /usr/bin/
https://codeload.github.com/SonarSource/sonar-scanning-examples/zip/refs/heads/master
参考连接: https://docs-sonarsource-com.translate.goog/sonarqube/latest/analyzing-source-code/analysis-parameters/?_x_tr_sl=auto&_x_tr_tl=zh-CN&_x_tr_hl=zh-CN&_x_tr_hist=true
/root/sonar-scanning-examples-master/sonar-scanner
vim sonar-project.properties
sonar.projectKey=org.sonarqube:sonar-scanner
sonar.projectName=Example of SonarScanner Usage
sonar.projectVersion=1.0
sonar.sources=src,copybooks
sonar.sourceEncoding=UTF-8
sonar.projectBaseDir=/home/ftpdrop/cobol/project1
sonar.scm.exclusions.disabled=true
sonar.cobol.copy.directories=copybooks
sonar.cobol.file.suffixes=cbl,cpy
sonar.cobol.copy.suffixes=cpy
sonar.flex.cobertura.reportPath=coverage-report/coverage-cobertua-flex.xml
sonar.pli.marginLeft=2
sonar.pli.marginRight=0
sonar-scanner -Dsonar.token=sqa_bc5542534384b2260e7a07c99d9eac4b4ed4b92b
3.2.2 docker
docker run \
--rm \
-e SONAR_HOST_URL="http://${SONARQUBE_URL} " \
-e SONAR_SCANNER_OPTS="-Dsonar.projectKey=${YOUR_PROJECT_KEY} " \
-e SONAR_TOKEN="myAuthenticationToken" \
-v ${YOUR_CACHE_DIR} :/opt/sonar-scanner/.sonar/cache \
-v "${YOUR_REPO} :/usr/src" \
sonarsource/sonar-scanner-cli
例:
docker run --rm \
-e SONAR_HOST_URL=http://172.31.3.42:9000 \
-e SONAR_SCANNER_OPTS="-Dsonar.projectKey=test-docker1" \
-e SONAR_TOKEN="sqa_bc5542534384b2260e7a07c99d9eac4b4ed4b92b" \
-v "/root/sonar-scanning-examples-master/sonar-scanner:/usr/src" \
quanheng.com/k8s/sonar-scanner-cli:5.0
3.2.3 配置分析
参考连接: https: //docs-sonarsource-com.translate.goog/sonarqube /latest/analyzing -source-code/analysis-parameters/?_ x_tr_sl=auto&_x_tr_tl=zh-CN&_x_tr_hl=zh-CN&_x_tr_hist=true
vim sonar-project.properties
sonar.projectKey=org.sonarqube: sonar-scanner
sonar.projectName=Example of SonarScanner Usage
sonar.projectVersion=1.0
sonar.sources=src,copybooks
sonar.sourceEncoding=UTF-8
sonar.projectBaseDir=/home/ftpdrop /cobol/project 1
sonar.scm.exclusions.disabled=true
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示