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

 更新时间:2020年05月20日 09:09:26   作者:南瓜慢说  
这篇文章主要介绍了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等收费版本,功能更强大,具体差别如下:

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就可以选择安装了。

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

3 通过maven检测代码

3.1 通过账号密码使用

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

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

3.2 通过Token令牌使用

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

复制令牌:9656c84090b2481db6ea97b6d14d87d546bff619

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

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

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

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

4 总结

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

到此这篇关于Docker搭建代码检测平台SonarQube并检测maven项目的文章就介绍到这了,更多相关Docker搭建代码检测平台SonarQube并检测maven项目内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker容器无法停止删除的解决方案

    Docker容器无法停止删除的解决方案

    这篇文章主要介绍了Docker容器无法停止删除的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • docker-compose安装RabbitMQ及插件操作步骤

    docker-compose安装RabbitMQ及插件操作步骤

    这篇文章主要为大家介绍了docker-compose安装RabbitMQ及插件操作步骤详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • 云原生教程之使用Docker部署webssh工具sshwifty

    云原生教程之使用Docker部署webssh工具sshwifty

    Sshwifty是一个开源的WebSSH & WebTelnet客户端,下面这篇文章主要给大家介绍了关于云原生教程之使用Docker部署webssh工具sshwifty的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-03-03
  • 使用docker部署java项目运行环境的实现步骤

    使用docker部署java项目运行环境的实现步骤

    本文主要介绍了使用docker部署java项目运行环境的实现步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • docker remote api一键TLS加密的实现

    docker remote api一键TLS加密的实现

    本文主要介绍了docker remote api一键TLS加密的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • 利用docker搭建LAMP运行环境教程详解

    利用docker搭建LAMP运行环境教程详解

    LAMP相信对大家来说都不陌生, Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器,所以这篇文章给大家介绍利用docker快速搭建LAMP运行环境的方法,有需要的朋友们可以参考借鉴,下面来一起看看吧。
    2016-10-10
  • 一文搞定Docker安装ElasticSearch的过程

    一文搞定Docker安装ElasticSearch的过程

    通过本文可以帮助大家快速学习Docker安装ElasticSearch的过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-08-08
  • Docker启动容器报错:Ports are not available的解决方案

    Docker启动容器报错:Ports are not available的解决方案

    这篇文章主要介绍了Docker启动容器报错:Ports are not available的解决方案,Docker 将容器程序的端口号映射到宿主机的端口号,是一个 NAT 过程,这个过程可能会因为与 Windows NAT 服务冲突而失效,文中有详细的解决方案,需要的朋友可以参考下
    2024-03-03
  • Docker教程:使用容器(简单示例)

    Docker教程:使用容器(简单示例)

    今天小编就为大家分享一篇关于Docker教程:使用容器(简单示例),小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • docker容器内网络请求缓慢问题解决

    docker容器内网络请求缓慢问题解决

    在使用docker的过程中发现了几个问题,在docker里进行的网络请求经常会失败,这篇文章主要介绍了docker容器内网络请求缓慢问题解决
    2019-01-01

最新评论