Linux安装SonarQube
7.9之后不在支持mysql
-
安装mysql数据库,创建sonar数据库
-
解压sonarqube-9.0.0.45539.zip
安装unzip
yum install unzip解压
unzip sonarqube-9.0.0.45539.zip重命名
mv /sonarqube-9.0.0.45539 /sonar -
修改权限(sonar以root启动会报错)
创建sonar用户
useradd sonar更改sonar目录及文件权限
chown -R sonar ./sonar -
修改sonar配置文件
vi /sonar/conf/sonar.properties
sonar.jdbc.username=root sonar.jdbc.password=root sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube?currentSchema=my_schema
-
启动
su sonar /sonar/bin/linux-x86-64/sonnar.sh start
docker安装
docker run --name sq -e SONARQUBE_JDBC_USERNAME=postgres -e SONARQUBE_JDBC_PASSWORD=123456 -e SONARQUBE_JDBC_URL=jdbc:postgresql://localhost:5432/sonar -p 9000:9000 -v F:/docker/sonarqube/data:/opt/sonarqube/data -v F:/docker/sonarqube/extensions:/opt/sonarqube/extensions -v F:/docler/sonarqube/logs:/opt/sonarqube/logs -d sonarqube:9.0-community
启动可能报错:
ERROR: bootstrap checks failed
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
liunx
vi /etc/sysctl.conf
添加下面配置:
vm.max_map_count=262144
windows
打开powershell
wsl -d docker-desktop
sysctl -w vm.max_map_count=262144
postgresql连接不上
将localhost换成实际ip地址
汉化插件Chinese Pack
和jenkins整合
SonarQube生成Tokens
jenkins安装SonarQube Scanner插件
增加配置
创建凭证
创建环境配置
非流水线风格
在Build添加构建步骤执行sonarqube
Path to project properties:指定一个项目中的sonar-project.properties 文件位置
Analysis properties:直接填写sonar-project.properties中的内容,优先度高
# 对Sonarqube来说的唯一标识,一般和项目名称相同
sonar.projectKey=my_project
# 在Sonarqube展示的名称
sonar.projectName=my_project
sonar.projectVersion=1.0
#指定语言
sonar.language=java
# 指定编码格式
sonar.sourceEncoding=UTF-8
sonar.java.binaries=$WORKSPACE/webapps/WEB-INF/classes
# 指定代码扫描的路径, 用 . 可以扫描全部内容
sonar.sources=/src/main
#在上边指定的扫描路径下排除扫描的内容多个用,隔开
sonar.exclusions=**/test/**
流水线风格
stage('代码扫描'){
steps {
script {
//tool 名称是 configureTools配置的SonarQube Scanner名称
scannerHome = tool 'SonarQube-Scanner'
}
//环境是configure配置的SonarQube servers名称
withSonarQubeEnv('SonarQube') {
sh "${scannerHome}/bin/sonar-scanner " +
"-Dsonar.projectKey=test001 " +
"-Dsonar.projectName=test001 " +
"-Dsonar.sourceEncoding=UTF-8 " +
"-Dsonar.language=java " +
"-Dsonar.projectVersion=1.0 " +
"-Dsonar.java.binaries=. " +
"-Dsonar.sources=."
}
}
}
SonarQube 指标定义
API
http://localhost:9000/web_api/api/projects