Docker搭建代码检测平台SonarQube并检测maven项目

1 前言

良好的代码习惯是一个优秀程序员应该具备的品质,但靠人的习惯与记忆来保证代码质量,始终不是一件靠谱的事。在计算机行业应该深知,只要是人为的,都会有操作风险。本文讲解如何通过 Docker 搭建代码检测平台 SonarQube ,并使用它来检测 maven 项目的代码。

2 Docker安装SonarQube

2.1 安装

通过 Docker 安装,方便快捷,不需要时直接删掉容器和镜像就好了。

# 拉取Sonar镜像
docker pull sonarqube:8.3.1-community
# 运行实例
docker run --name sonarqube -p 9000:9000 -d sonarqube:8.3.1-community

接着访问: http://localhost:9000/ 就可以了,默认管理员用户和密码为: admin/admin

这里选择免费的社区版 Community ,另外还有 DeveloperEnterprise 等收费版本,功能更强大,具体差别如下:

Docker搭建代码检测平台SonarQube并检测maven项目

2.2 指定数据库

一般我们会自己启动一个数据库如 OracleMySQLPostgreSQL 。相关系统信息可以在 Administration-System 查看,我们不指定的话,默认是使用内嵌的 H2 数据库。如果要指定其它数据库,启动Docker时需要指定:

-e SONARQUBE_JDBC_USERNAME="xxx" /
-e SONARQUBE_JDBC_PASSWORD="***" /
-e SONARQUBE_JDBC_URL="jdbc:mysql://xxx"

使用 H2 数据库有会以下限制:

内嵌数据库只能用于测试场景。内嵌数据库无法扩展,也无法升级到新版本的SonarQube,并且不能支持将你的数据迁移至其他数据库引擎。

所以建议实际使用时,不要使用内嵌的 H2 数据库。

2.3 进入容器

通过命令:

$ docker exec -it 容器ID bash

bash-5.0# ls
COPYING        bin            conf           data           elasticsearch  extensions     lib            logs           temp           web
bash-5.0#

可以进入 SonarQube 容器。在目录 /opt/sonarqube 可以查看配置文件、插件、数据文件和日志文件等,实际使用应该映射到宿主机的目录上,这样重新启动一个实例,数据和配置都还在。

2.4 安装插件

SonarQube 提供了强大的插件管理功能,以中文语言包为示例,讲解如何安装插件:

Administration-Marketplace-Plugins ,在搜索框输入 Chinese 就可以选择安装了。

Docker搭建代码检测平台SonarQube并检测maven项目

当状态显示为 Install Pending 时,说明插件安装完成,点击 Restart Server 即可生效。

3 通过maven检测代码

3.1 通过账号密码使用

指定 SonarQube 平台的地址,并指定用户名和密码,就能检测代码了,具体命令如下:

mmvn clean install sonar:sonar -Dsonar.host.url=http://localhost:9000 -Dsonar.login=admin -Dsonar.password=admin

3.2 通过Token令牌使用

当然,直接使用 admin 并暴露密码并不是一个好的习惯,可以通过 配置-权限-用户 来创建用户,并创建令牌。

Docker搭建代码检测平台SonarQube并检测maven项目

复制令牌: 9656c84090b2481db6ea97b6d14d87d546bff619

这样,就可以通过令牌来操作了:

mmvn clean install sonar:sonar -Dsonar.host.url=http://localhost:9000 -Dsonar.login=9656c84090b2481db6ea97b6d14d87d546bff619

执行命令后,就会在界面上自动新建了一个项目,并给出检测结果:

Docker搭建代码检测平台SonarQube并检测maven项目

Sonar 提供了许多指标如测试覆盖率、复杂度等,这能大大帮助我们写出更好的代码:

Docker搭建代码检测平台SonarQube并检测maven项目

4 总结

SonarQube 功能强大,是 DevOps 的重要工具之一,需要了解和掌握。

欢迎访问 南瓜慢说 www.pkslow.com 获取更多精彩文章

欢迎关注微信公众号< 南瓜慢说 >,将持续为你更新…

Docker搭建代码检测平台SonarQube并检测maven项目

多读书,多分享;多写作,多整理。

原文 

https://www.pkslow.com/archives/docker-sonarqube

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » Docker搭建代码检测平台SonarQube并检测maven项目

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址