Docker搭建Sonarqube服务(二)
通过前面的Sonar服务环境搭建,我们已经在服务端完成了相关的搭建。为了能够方便的扫描代码,我们需要安装sonar client来进行代码的扫描。
一、插件安装与汉化
通过前面安装的服务端,访问时展示的为英文,为了用户体验我们还是汉化它吧。正常来讲,我们可以在服务端下载安装汉化功能:
首先通过admin登录,进行配置管理,然后
配置>>应用市场>>搜索 chinese>>点击安装即可。
另外,需要对各种语言的扫描插件进行下载安装,我这边的具体操作是浏览了下各个语言的特性,然后系统自动进行了安装,安装完毕之后的插件全部在容器的如下目录:
/opt/sonarqube/extensions/plugins目录下,我们通过卷轴映射挂载,可以在宿主机的对应目录下找到这些文件,通过将该文件夹进行打包,可以拷贝进入内网隔离的服务器。
然后放到隔离机器的映射目录下即可。
另外,汉化包可以或者通过如下直接下载的方式进行
下载地址:https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases/tag/sonar-l10n-zh-plugin-8.3
然后通过docker镜像与宿主机的映射,我们将下载的 汉化包放在如下目录映射,然后重启镜像即可:
sonarqube_extensions/plugins:/opt/sonarqube/extensions/plugins
另外,注意一下各种语言检测插件最好直接在官网进行下载,比如Java,然后手动copy到plugins目录下,并且将前面步骤自动安装的Java包进行替换,否则容易出现版本问题导致扫描错误
二、客户端扫描
为了能够快速扫描代码,我们需要在不同的环境使用不同的客户端,比如Maven环境,Gradle环境,Jenkins环境等等。每个环境的客户端安装参考sonarqube官网
由于我们现有的工程无法通过maven等管理工具,所以只能下载通用类型的scanner
下载完毕之后,按照官方文档进行配置,找到客户端的解压目录,找到conf目录,然后增加配置文件sonar-scanner.properties ,配置文件如下:
sonar.host.url=http://localhost:9000 #按照实际地址填我们前面搭建的sonar服务端地址 sonar.sourceEncoding=UTF-8
然后将安装目录中的/bin文件夹路径添加到系统环境,win系统通过命令行:进行验证是否配置成功。
sonnar-scanner
三、扫描配置
根据官网的提示,现在对Java代码进行扫描,需要提供class文件,否则就会提示你需要在配置文件中提供class目录,这意味着我们需要先对项目进行编译,然后在待扫描的工程项目中配置sonar.project.properties文件,增加如下配置:
sonar.java.binaries=d:/myProject/out
sonar.projectKey=test
sonar.sourceEncoding=UTF-8
sonar.scm.disabled=true
其它配置文件的内容可以参考:
# must be unique in a given SonarQube instance sonar.projectKey=my:project # --- optional properties --- # defaults to project key #sonar.projectName=My project # defaults to 'not provided' #sonar.projectVersion=1.0 # Path is relative to the sonar-project.properties file. Defaults to . #sonar.sources=. # Encoding of the source code. Default is default system encoding #sonar.sourceEncoding=UTF-8
参考: