【报错】安装SonarQube、SonarScanner在linux服务器上的配置

SonarQube、SonarScanner在linux服务器上的配置

本文介绍如何在linux服务器上配置SonarQube以及Sonar Scanner,因为安装路上踩了很多坑,所以一气之下写下这篇文章记录一下

首先!
jdk8支持的sonarqube版本最高是7.8,而从7.9版本开始都是要求jdk11
JDK8或者JDK1.8是同一个东西

查看你自己服务器的jdk版本,如果是1.8就安装sonarqube7.8及以下,否则后面会报错!

在这里插入图片描述

其次!注意你的sonarqube对应的MySQL版本
我使用的sonarqube7.5需要满足MySQL >=5.6 && <8.0
而我电脑的mysql是8版本的,所以我只能在服务器上配置了~QAQ
这里要查看对应版本可以去配置文件查看

查看配置文件

在这里插入图片描述
在这里插入图片描述

所以
如果你的电脑已经有了jdk1.8以及mysql5.7,那么你就可以直接使用如下两个版本了!
sonarqube7.5的压缩包里面有linux和windows的文件,所以你直接下载就可以了,不用分平台

给你们提供网盘链接:sonarqube7.5&sonar-scanner-cli-4.8.0.2856-linux
提取码:1010

在这里插入图片描述
sonarqube7.5解压后的bin文件:
在这里插入图片描述

安装
找到一个文件夹,以/etc/docker为例(不要放在root目录下就可以)

在这里插入图片描述

使用 root 用户 unzip sonarqube-7.5.zip 进行解压

然后你需要创建一个非root用户:useradd sonar
再授权Chown -R sonar.sonar /etc/docker/sonarqube-7.5
然后切换用户:su sonar
然后进入目录:cd /etc/docker/sonarqube-7.5/bin/linux-x86-64
启动服务:./sonar.sh start
可以检查一下是否启动成功:lsof -i:9000

启动成功:

在这里插入图片描述
然后输入你服务器的地址xxx:9000就可以访问
这样就正常访问 在这里插入图片描述

配置MySql
到这里别急!还要配置MySql,这里容易踩坑

往配置文件sonar.properties加入下面的代码用来配置数据库
注意这里你要提前在数据库建一个sonar库,也就是3306后面跟着的那个名字,就是数据库名字

sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=root#自己数据库用户名
sonar.jdbc.password=#自己数据库的密码
sonar.sorceEncoding=UTF-8  
sonar.login=admin#设置登录sonar用户名
sonar.password=admin#设置登录sonar的密码

然后回到目录:/etc/docker/sonarqube-7.5/bin/linux-x86-64
执行:./sonar.sh restart(重启sonar让配置生效!)

看到这里原本空的sonar库有了很多表就说明配置生效了

如果出现错误很肯可能是你的数据库用户权限问题,或者是数据库版本问题,要仔细排查在这里插入图片描述

sonar-scanner-cli-4.8.0.2856-linux.zip

接着解压sonar-scanner-cli:unzip sonar-scanner-cli-4.8.0.2856-linux.zip(注意要在root用户下解压才有权限)
解压后往sonar-scanner.properties添加配置:
在这里插入图片描述

sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=root
sonar.jdbc.password=#你的数据库密码
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar.password=admin

再找到 /etc/profile 添加sonar-scanner的环境变量:
在这里插入图片描述

export SONAR_RUNNER_HOME=/etc/docker/sonar-scanner-4.8.0.2856-linux
export PATH=$SONAR_RUNNER_HOME/bin:$PATH

修改后保存,并在root用户下:source /etc/profile 让环境变量生效
在这里插入图片描述
接着你可以使用sonar-scanner -h检查是否成功配置好SonarScanner
然后切换sonar用户,重启sonar服务,如下就是成功启动了!
在这里插入图片描述

使用SonarScanner

创建如下结构的python文件结构,手动新建sonar-project.properties文件
在这里插入图片描述
在这里插入图片描述

以python为例,使用SonarScanner测试python文件
注意sonar.language=py而不是sonar.language=python!这个坑真的坑!🕳

sonar.projectKey=BadTest
sonar.sources=ForTest#要监测的文件夹名字,properties文件和他在同一级就可以这样直接写
sonar.host.url=http://sonar所在的IP:9000
sonar.language=py
sonar.sourceEncoding=UTF-8

找到要测试的文件夹:在这里插入图片描述

输入:sonar-scanner在这里插入图片描述

这样说明运行成功在这里插入图片描述

回到xxxx:9000页面
有了成功生成的分析项目!
在这里插入图片描述

【启动sonarqube时报错,启动不成功】

WrapperSimpleApp: Encountered an error running main: java.nio.file.AccessDeniedException: /etc/docker/sonarqube-7.5/temp/conf/es/log4j2.properties
java.nio.file.AccessDeniedException: /etc/docker/sonarqube-7.5/temp/conf/es/log4j2.properties
	at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
	at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
	at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
	at sun.nio.fs.UnixFileSystemProvider.implDelete(UnixFileSystemProvider.java:244)
	at sun.nio.fs.AbstractFileSystemProvider.delete(AbstractFileSystemProvider.java:103)
	at java.nio.file.Files.delete(Files.java:1126)
	at org.sonar.process.FileUtils2$DeleteRecursivelyFileVisitor.visitFile(FileUtils2.java:186)
	at org.sonar.process.FileUtils2$DeleteRecursivelyFileVisitor.visitFile(FileUtils2.java:181)
	at java.nio.file.Files.walkFileTree(Files.java:2670)
	at java.nio.file.Files.walkFileTree(Files.java:2742)
	at org.sonar.process.FileUtils2.deleteDirectoryImpl(FileUtils2.java:143)
	at org.sonar.process.FileUtils2.deleteDirectory(FileUtils2.java:112)
	at org.sonar.application.AppFileSystem$CleanTempDirFileVisitor.visitFile(AppFileSystem.java:117)
	at org.sonar.application.AppFileSystem$CleanTempDirFileVisitor.visitFile(AppFileSystem.java:101)
	at java.nio.file.Files.walkFileTree(Files.java:2670)
	at org.sonar.application.AppFileSystem.createOrCleanTempDirectory(AppFileSystem.java:96)
	at org.sonar.application.AppFileSystem.reset(AppFileSystem.java:62)
	at org.sonar.application.App.start(App.java:55)
	at org.sonar.application.App.main(App.java:78)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:240)
	at java.lang.Thread.run(Thread.java:748)
<-- Wrapper Stopped

注意 WrapperSimpleApp: Encountered an error running main: java.nio.file.AccessDeniedException:
说明没有权限!,这个时候就要chown -R sonar.sonar /etc/docker/sonarqube-7.5,用root用户给sonar授权访问文件

【sonar检查java项目,命令行启动springboot报错】

在命令行输入sonar生成的命令语句:mvn sonar:sonar -Dsonar.host.url=http://xxxxx:9000 -Dsonar.login=sonar启动报错如下:

[INFO] SonarQube version: 7.5.0
[INFO] Default locale: "zh_CN", source code encoding: "UTF-8"
[INFO] Publish mode
[INFO] Load global settings
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  3.323 s
[INFO] Finished at: 2023-04-08T16:50:50+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.9.1.2184:sonar (default-cli) on project pollu: Not au
thorized. Please check the properties sonar.login and sonar.password. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

【解决】:mvn clean verify sonar:sonar -Dsonar.host.url=http://xxxxx:9000 -Dsonar.login=admin -Dsonar.password=admin使用这个语句启动,报错提示没有密码和账户,所以加上账号密码
启动成功:在这里插入图片描述
在这里插入图片描述

[启动检查python报错]

ERROR: Error during SonarQube Scanner execution
ERROR: Not authorized. Please check the properties sonar.login and sonar.password.

与上面类似,提示登录错误,使用如下登录即可:
sonar-scanner.bat -D"sonar.projectKey=bad" -D"sonar.sources=." -D"sonar.host.url=http://xxxx:9000" -D"sonar.login=admin" -D"sonar.password=admin"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

之墨_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值