SonarQube 02 插件安装以及配置scanner
在线安装或者手动上传插件
在线安装:操作如下图
[root@tools1 ~]# docker restart fe5f51e8655f
fe5f51e8655f
#下载的插件的位置
[root@tools1 ~]# cd /data/cicd/
[root@tools1 cicd]# ls
nexus3 sonarqube
[root@tools1 cicd]# cd sonarqube/
[root@tools1 sonarqube]# ls
sonarqube_conf sonarqube_data sonarqube_extensions sonarqube_logs
[root@tools1 sonarqube]# cd sonarqube_extensions/
[root@tools1 sonarqube_extensions]# ls
downloads plugins
[root@tools1 sonarqube_extensions]# cd plugins/
[root@tools1 plugins]# ls
sonar-l10n-zh-plugin-1.29.jar
手动上传插件
为什么需要手动安装? 在线源可能会失败,超时。
Caused by: org.sonar.api.utils.SonarException: Fail to download: https://github.com/xuhuisheng/sonar-l10n-zh/releases/download/sonar-l10n-zh-plugin-1.29/sonar-l10n-zh-plugin-1.29.jar (no proxy)
at org.sonar.core.util.DefaultHttpDownloader.failToDownload(DefaultHttpDownloader.java:155)
at org.sonar.core.util.DefaultHttpDownloader.download(DefaultHttpDownloader.java:150)
at org.sonar.server.plugins.PluginDownloader.downloadRelease(PluginDownloader.java:152)
at org.sonar.server.plugins.PluginDownloader.download(PluginDownloader.java:126)
... 47 common frames omitted
Caused by: java.net.SocketTimeoutException: Read timed out
所以在手动安装插件的时候,传到这个目录里面,然后重启一下sonaqube就行了
阅读说明文档:找到sonarqube 版本对应的插件版本。
GitHub - xuhuisheng/sonar-l10n-zh: Chinese Pack for SonarQube
Tags · xuhuisheng/sonar-l10n-zh · GitHub
cd /data/cicd/sonarqube/sonarqube_extensions/plugins
wget https://github.com/xuhuisheng/sonar-l10n-zh/releases/download/sonar-l10n-zh-plugin-1.29/sonar-l10n-zh-plugin-1.29.jar
chmod +x sonar-l10n-zh-plugin-1.29.jar
docker restart sonarqube
插件源:Index of /
配置强制登录
默认所有项目都可以公开的查看,在企业内肯定要配置成私有的。只有登录后才能查看。如下图所示((sonarqube8.9.1 默认已经开启了,低于该版本的可以手动开启)
配置Scanner
scanner的类型有很多, 可以通过官网:Overview | SonarQube Docs 获取支持的列表。(如果想通过mvn命令去允许代码扫描,那么安装上其对应的scanner插件就可以了,如果要和Jenkins集成的话,Jenkins有单独的插件。
所以有两种方式:
- 一种和Jenkins做集成,使用Jenkins的sonarqube插件
- 还有一种使用通用的scanner,命令行
- 变更项目代码: 可以使用构建工具进行扫描。例如maven、ant、gradle可以在配置文件中引入对应的配置。
- 不变更项目代码配置: 可以使用Jenkins或其他平台的扩展插件, 以及使用命令行进行扫描。
- Gradle - SonarScanner for Gradle
- .NET - SonarScanner for .NET
- Maven - use the SonarScanner for Maven
- Jenkins - SonarScanner for Jenkins
- Azure DevOps - SonarQube Extension for Azure DevOps
- Ant - SonarScanner for Ant
- anything else (CLI) - SonarScanner
这里有很多scanner,我们这里使用通用的CLI
这个安装和构建节点安装在一起,要求机器上有JDK
[root@jenkins-agent ~]# java -version
openjdk version "1.8.0_282"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_282-b08)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.282-b08, mixed mode)
#可以看到有可执行程序,也就是我们扫描要用到的
[root@jenkins-agent ~]# cd /usr/local/sonar-scanner-4.6.0.2311-linux/bin/
[root@jenkins-agent bin]# ls
sonar-scanner sonar-scanner-debug
#扫描信息的参数全部放在这里面,全局的参数,这种在sonar扫描的时候可以指定这个参数。还有一种方式就是通过-D的方式去传
[root@jenkins-agent conf]# ls
sonar-scanner.properties
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.6.0.2311-linux.zip
tar zxf sonar-scanner-xxxx.tar.gz -C /usr/local
vim /etc/profile
export SCANNER_HOME=/usr/local/sonar-scannerxxx
export PATH=$PATH:$SCANNER_HOME/bin
source /etc/profile
[root@zeyang-nuc-service bin]# source /etc/profile
[root@zeyang-nuc-service bin]# sonar-scanner -v
INFO: Scanner configuration file: /usr/local/sonar-scanner-4.6.0.2311-linux/conf/sonar-scanner.properties
INFO: Project root configuration file: NONE
INFO: SonarScanner 4.6.0.2311
INFO: Java 11.0.3 AdoptOpenJDK (64-bit)
INFO: Linux 4.18.0-80.el8.x86_64 amd64
修改scanner的java使用版本,内置使用JDK11,但是本机使用的是JDK8
[root@zeyang-nuc-service sonar-scanner-4.6.0.2311-linux]# vi bin/sonar-scanner
[root@zeyang-nuc-service sonar-scanner-4.6.0.2311-linux]#
### 编辑约第42行, true改成false
42 use_embedded_jre=false
43 if [ "$use_embedded_jre" = true ]; then
44 export JAVA_HOME="$sonar_scanner_home/jre"
45 fi
### 更改后,再次验证,发现变成了系统jdk版本。 更改生效。
[root@zeyang-nuc-service sonar-scanner-4.6.0.2311-linux]# sonar-scanner -v
INFO: Scanner configuration file: /usr/local/sonar-scanner-4.6.0.2311-linux/conf/sonar-scanner.properties
INFO: Project root configuration file: NONE
INFO: SonarScanner 4.6.0.2311
INFO: Java 1.8.0_282 AdoptOpenJDK (64-bit)
INFO: Linux 4.18.0-80.el8.x86_64 amd64
目录 返回
首页