暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

docker 方式安装SonarQube:lts和中文插件

程序猿白糖 2020-06-09
1435

1、获取 postgresql 的镜像

  docker pull postgres

2、启动 postgresql

mkdir -p data/postgresql/data

mkdir -p var/lib/postgresql

ln -s data/postgresql/data/ var/lib/postgresql/data

docker run --name postgresqlDB -p 5432:5432 -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -e POSTGRE_DB=sonar -v data/postgresql/data:/var/lib/postgresql/data -d postgres

3、获取 sonarqube 的镜像

docker pull sonarqube:lts

4、启动 sonarqube

mkdir -p data/sonarqube/data

mkdir -p data/sonarqube/extensions

chmod -R 777 data/sonarqube/

chmod -R 777 opt/sonarqube/

ln -s data/sonarqube opt/sonarqube

mkdir -p opt/sonarqube/extensions/plugins

docker run --name sonarqube --link postgresql -e SONARQUBE_JDBC_URL=jdbc:postgresql://postgresqlDB:5432/sonar -p 9000:9000 -d -v data/sonarqube/data:/opt/sonarqube/data -v data/sonarqube/extensions:/opt/sonarqube/extensions sonarqube

5、代码质量检验sonar平台

1.打开 http://localhost:9000/ , 点击 "Log in"

登录账号:admin 密码:admin

6、初始状态确认

检查sonar 缺省的Java等语言的Sonar Way是否存在,详细如下图所示

关键是quality profile页面中,缺少quality profile。

安装语言插件

由于本文是使用typescript的Angular应用,安装SonarTS和SonarJS即可。而SonarJS安装时也会顺便带上SonarTS,所以只需要安装SonarJS即可。

安装完毕之后,可以看到SonarTS也已经被安装了。

另外同时安装一下Java语言的插件

使用界面方式安装,SonarQube也是将此jar文件放至extensions目录下,具体来说分如下步骤:

步骤1: 下载开始后,jar文件会保存在downloads目录下,jar文件在下载中的状态:会形成sonar-*.jar.tmp文件。

步骤2: 下载完毕之后,会自动将downloads目录下的.tmp后缀删除

本文示例的SonarTS、SonarJS和SonarJava的安装,实际上对应了三个文件,直接以jar文件结尾的表明已经下载完毕,否则还会带有.tmp后缀。下载的中间状态如下所示

liumiaocn:extensions liumiao$ tree .

.

├── downloads

│ ├── sonar-java-plugin-5.14.0.18788.jar.tmp

│ ├── sonar-javascript-plugin-6.1.0.11503.jar.tmp

│ └── sonar-typescript-plugin-2.1.0.4359.jar

└── plugins

2 directories, 3 files

liumiaocn:extensions liumiao$

如果下载时速度不好的情况下,此时会显示非常之慢,查看日志又往往没有任何提示,此时可以通过查看一下中间文件的大小来进行确认是否仍在正常执行

此时再确认SonarQube的页面,就会发现已经成功了

点击Restart Server进行重启, 以管理员身份登录,可以确认到quality profile已经添加了三种语言的Sonar way规则。实际本文示例只是用到一种。

7、安装中文插件

进入github:https://github.com/SonarQubeCommunity/sonar-l10n-zh

查看兼容的列表

SonarQube7.9 对应的是sonar-l10n-zh 1.29

进入https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases 下载1.29 的版本

然后将sonar-l10n-zh-plugin-1.29.jar 上传到/opt/sonarqube/extensions/plugins 目录下。重启后,中文插件就可以生效了。

8、以 Maven 项目为例,

Maven 项目

pom.xml 添加配置:

    <!-- 代码质量检测 -->

<profiles>

<profile>

<id>sonar</id>

<activation>

<activeByDefault>true</activeByDefault>

</activation>

<properties>

<sonar.host.url>http://127.0.0.1:9000/</sonar.host.url>

</properties>

</profile>

</profiles>

8.1执行命令,检测代码质量

$ mvn sonar:sonar

8.2 成功之后,返回到浏览器,就可以浏览自己的项目的代码质量了


目前码云上代码分析工具首推的也是 sonarqube,支持各种语言的程序检测,使用简单方便,感觉非常适合微服务的代码评审,强烈推荐。

9、idea配置sonar步骤如下:

9.1 安装sonar插件,如果安装失败就多安装几次,博主就是安装了两次,第一次安装失败了,第二次才安装成功的。

安装成功后重启idea

9.2 添加sonar服务器连接

9.3 选择项目对应的规则

点击OK之后则配置完成

9.4 idea下方会出现SonarLint选项

mvn sonar:sonar

-Dsonar.projectKey=project

-Dsonar.host.url=http://ip:9000

-Dsonar.login=6c0344dbbf9aa168c6f9b2dde3371108dcba9269

9.5 打开一个文件点击运行按钮,则最该代码进行扫描,会自动显示扫描的问题,双击问题则会定位到相应的代码。

10、安装错误记录

  • 错误描述:

    ERROR:[1] bootstrap checks failed [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

  • 解决办法:

vi /etc/sysctl.conf

vm.max_map_count=655360

sysctl -p


文章转载自程序猿白糖,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论