在线安装或者手动上传插件

在线安装:操作如下图

SonarQube 02 插件安装以及配置scanner_java

[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​

SonarQube 02 插件安装以及配置scanner_java_02

​Tags · xuhuisheng/sonar-l10n-zh · GitHub​

SonarQube 02 插件安装以及配置scanner_linux_03

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 默认已经开启了,低于该版本的可以手动开启)

SonarQube 02 插件安装以及配置scanner_java_04

 

配置Scanner


scanner的类型有很多, 可以通过官网:​​Overview | SonarQube Docs​​ 获取支持的列表。(如果想通过mvn命令去允许代码扫描,那么安装上其对应的scanner插件就可以了,如果要和Jenkins集成的话,Jenkins有单独的插件。

所以有两种方式:

  • 一种和Jenkins做集成,使用Jenkins的sonarqube插件
  • 还有一种使用通用的scanner,命令行
  • 变更项目代码: 可以使用构建工具进行扫描。例如maven、ant、gradle可以在配置文件中引入对应的配置。
  • 不变更项目代码配置: 可以使用Jenkins或其他平台的扩展插件, 以及使用命令行进行扫描。

 这里有很多scanner,我们这里使用通用的CLI

SonarQube 02 插件安装以及配置scanner_linux_05

这个安装和构建节点安装在一起,要求机器上有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