把质量控制工作往前推进(1)—安装sonarqube

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:
以前关注点一直在怎么提高应用程序的质量,没太在意代码级别的质量。最近因为某些因素的推动,需要关注到代码级别的质量去,把质量 工作尽量往前推,也符合质量控制的原则。  试用了一下 sonarqube(老版本的叫sonar,ww.sonarqube.org),对代码的提升的确有很多的作用,sonarqube能从7个维度来对代码质量进行度量。多大的作用,大家实践下就很容易看出来。尤其是建议大家把rules里面的说明和例子都好好看看,对以后自己写代码的时候,质量提高有很大好处。
   Sonarqube安装:
  Sonarqube一共分3 部分:
  以下安装步骤是 Linux下的安装示例
   数据库:
  这里我用的是 mysql数据库,直接执行 SQL
  CREATEDATABASEsonarCHARACTERSETutf8COLLATEutf8_general_ci;
  赋予后面连接sonarqube的数据库用户读写权限即可
   web服务:  修改sonarqube/conf/sonar.properties
# Permissions to create tables, indices and triggers must be granted to JDBC user.
# The schema must be created first.
sonar.jdbc.username=mysql_username
sonar.jdbc.password=mysql_password
# Comment the following line to deactivate the default embedded database.
#sonar.jdbc.url=jdbc:h2:tcp://localhost:9092/sonar
#----- MySQL 5.x
# Comment the embedded database and uncomment the following line to use MySQL
sonar.jdbc.url=jdbc:mysql://192.168.22.99:3306/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=t
sonar.web.host=0.0.0.0
sonar.web.context=/sonarqube
sonar.web.port=9001
  sonarqube自带 web服务器,性能也足够好,不需要配置tomcat什么的,到这里整个sonar web服务配置完成了,到sonarqube/bin/linux-x86-64目录下,启动./sonar.sh start即可,启动后有任何问题可以查看log: sonarqube/logs/sonar.log, 通过浏览器访问http://192.168.22.99:9001/sonarqube, 打开登陆页面,默认管理员账户是admin/admin
   分析器:
  Sonarqube通过插件 支持20+种语言, Java, python, C#, C/C++, PL/SQL, Cobol等, 但C语言的插件是收费的。到这里http://docs.codehaus.org/display/SONAR/Plugin+Library 下载对应语言的插件,放置到sonarqube/extensions/plugins目录下,重启web服务即可。
   分析器主要5种:
  SonarQube Runner(万能,支持后面几种方式的工程),
  Maven(和maven编译工程集成),
  SonarQube Ant Task(和ant编译工程集成),
  Gradle(和Gradle编译工具集成,很少听过),
  CI Engine(主要和Jenkins , Hudson等CI工具集成)。
以下主要讲Sonarqube runner分析器的使用:
  下载Sonarqube 分析器:http://docs.codehaus.org/display/SONAR/Installing+and+Configuring+SonarQube+Runner, 解压后修改conf目录下的sonar-runner.properties, 如下例子。
#----- Default SonarQube server
sonar.host.url=http://192.168.23.94:9001/sonarqube
#----- PostgreSQL
#sonar.jdbc.url=jdbc:postgresql://localhost/sonar
#----- MySQL
sonar.jdbc.url=jdbc:mysql://192.168.23.99:3306/sonarqube_qa?useUnicode=true&characterEncoding=utf8
#----- Oracle
#sonar.jdbc.url=jdbc:oracle:thin:@localhost/XE
#----- Microsoft SQLServer
#sonar.jdbc.url=jdbc:jtds:sqlserver://localhost/sonar;SelectMethod=Cursor
#----- Global database settings
sonar.jdbc.username=mysql_username
sonar.jdbc.password=mysql_password
#----- Default source code encoding
sonar.sourceEncoding=UTF-8
#----- Security (when 'sonar.forceAuthentication' is set to 'true')
sonar.login=admin
sonar.password=admin
  把sonarruner/bin加入到path目录下,在环境变量里面加上SONAR_RUNNER_HOME="/home//sonarruner"。
  到这里整个Sonarqube的运行环境就全部配置完成了,下一篇讲解怎么运行分析器。

最新内容请见作者的GitHub页:http://qaseven.github.io/
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
8月前
|
编解码 IDE 算法
2023年电赛---运动目标控制与自动追踪系统(E题)发挥题思路
2023年电赛---运动目标控制与自动追踪系统(E题)发挥题思路
240 0
|
定位技术
巧用千寻位置GNSS软件| 数据链工作状态轻松看
在日常施工中,千寻位置GNSS软件中的「工作状态」功能,可以帮助测绘工作人员查看当前接收机所选择的数据链的作业信息和状态。本期将为各位测友们详细介绍不同工作模式的「工作状态」所呈现的信息。
巧用千寻位置GNSS软件| 数据链工作状态轻松看
|
人工智能 运维 大数据
软件开发商何时介入生产过程?一起跟随程序员看看软件开发全阶段
软件开发商何时介入生产过程?一起跟随程序员看看软件开发全阶段
软件开发商何时介入生产过程?一起跟随程序员看看软件开发全阶段
|
安全 测试技术 应用服务中间件
持续测试之下的正确质量度量
持续测试之下的正确质量度量
247 0
持续测试之下的正确质量度量
|
监控 安全 BI
成功通航:用宜搭提升数字化管理效能,确保每次飞行任务安全执行
宜搭帮助山西成功通航节省了100万左右的成本,同时使管理运营效率提升了76%。
1340 1
成功通航:用宜搭提升数字化管理效能,确保每次飞行任务安全执行
|
缓存 Kubernetes Cloud Native
构建制品不一致,后续工作都是白费 | 研发效能提升36计
本篇文章,我们从软件交付的终态出发,提出了不可变构建的概念。在软件开发的过程中,我们怎样才能享受产业生态的红利,实现软件交付过程的标准化呢?软件交付当中的集装箱应该是什么样的?
833 0
构建制品不一致,后续工作都是白费 | 研发效能提升36计
|
运维 监控 数据可视化
软件质量核武器-LIUDAO系统定位&目标
一、导读 年前在测试交流的微信群里面,看到了关于美军的“宙斯盾”系统的文章(https://mp.weixin.qq.com/s/_0nALr8rJ1Tq5pIFEZAikA),引发了一系列的讨论和思考,同时结合自己在测试十年的文章(https://www.atatech.org/articles/58031)最后一段,关于自己做测试的一个小小梦想,就是想要那样超酷的指挥
248 0
|
项目管理
艾伟也谈项目管理,项目过程中所遇到的各种问题记录——有关MSChart的一些小技巧
完成了有关编辑器篇的内容,接下来记录下这一年里在有关图表使用过程中碰到的一些问题及个人的解决方法。   以下是本文所要介绍的内容: 1、MSChart基本概况介绍。 2、开发过程中碰到的问题及解决方法。
1112 0
|
Java 调度
设计Optaplanner下实时规划服务的失败经历
        其实本文不知道算不算一个知识点分享,过程很美妙,但结果很失败。我们在利用Optaplanner的Real-Time planning(实时规则)功能,设计实时在线规划服务时,遇到一个属于Optaplanner7.8.0.Final版本的Bug。
2123 0