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或其他平台的扩展插件, 以及使用命令行进行扫描。

 这里有很多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
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SonarQube默认集成了Java Ecosystem插件,该插件是一组插件的合集,包含了一些常用的插件。其中包括: - sonar-java-plugin:用于Java源代码解析和计算指标。 - sonar-squid-java-plugin:用于检查潜在缺陷。 - sonar-checkstyle-plugin:用于检查代码编写风格。 - sonar-findbugs-plugin:用于检查潜在缺陷。 - sonar-pmd-plugin:用于检查潜在缺陷。 - sonar-surefire-plugin:用于执行单元测试。 - sonar-cobertura-plugin:用于统计代码覆盖率。 - sonar-jacoco-plugin:用于统计代码覆盖率。\[1\] 此外,SonarQube还支持其他常用的插件,如: - sonar-javascript-plugin:用于JavaScript代码检查。 - sonar-python-plugin:用于Python代码检查。 - sonar-web-plugin:用于Web页面检查(HTML、JSP、JSF、Ruby、PHP等)。 - sonar-xml-plugin:用于XML文件检查。 - sonar-scm-stats-plugin:用于SCM源码库统计分析。 - sonar-metrics-plugin:用于文件度量。 - sonar-chinese-pack-plugin:用于中文语言包。 - sonar-timeline-plugin:用于时间表显示度量结果。 - sonar-motion-chart-plugin:用于度量结果演进图。\[2\] 如果在Jenkins项目中引用SonarQube插件,可以使用SonarQube Scanner。在项目中引入SonarQube Scanner时,需要配置一些参数,如项目名称、项目唯一标识和扫描的源码路径等。具体配置可以参考SonarQube Scanner的文档。\[3\] #### 引用[.reference_title] - *1* *2* [SonarQube插件汇总](https://blog.csdn.net/csdn_life18/article/details/113600229)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [13.Jenkins集成sonarqube](https://blog.csdn.net/Wangjiachenga/article/details/129163798)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值