前言

初到新公司,接手8-10个java后台项目,代码量比较大,框架使用比较混乱,两个月左右的时间把开发到发布的流程整个熟悉了一遍,这面领导要求做项目以后的整体技术改造规划,所以引入一些代码检查工具,保证改造的同时提高代码质量

下面是搭建步骤:

准备环境

jdk1.8

mysql5.6+

下载安装包

  • 服务端sonarqube:

http://www.sonarqube.org/downloads/

  • 客户端工具sonar-runner:

http://repo1.maven.org/maven2/org/codehaus/sonar/runner/sonar-runner-dist/2.3/sonar-runner-dist-2.4.zip

  • 中文补丁包下载:

http://docs.codehaus.org/display/SONAR/Chinese+Pack

解压路径:/usr/local

创建数据库

mysql -u root -p

mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;

mysql> CREATE USER 'sonar' IDENTIFIED BY 'sonar';

mysql> GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';

mysql> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';

mysql> FLUSH PRIVILEGES;

修改配置文件

vim /usr/local/sonarqube-5.6.6/confsonar.properties

sonar.host.url=http://localhost:9000/sonarqube

sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance

sonar.jdbc.username=root

sonar.jdbc.password=123456

vim /usr/local/sonarqube-5.6.6/wrapper.conf

wrapper.java.command=/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java

注意:把wrapper.conf中的wrapper.java.command修改成jdk1.8路径

否则会找系统自带jdk版本的命令执行,启动的时候可能报错

vim /usr/local/sonar-runner-2.4/conf/sonar-runner.properties

sonar.host.url=http://localhost:9000/sonarqube

sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance

sonar.jdbc.username=root

sonar.jdbc.password=123456

配置环境变量

vim ~/.bash_profile

export SONAR_HOME=/usr/local/sonarqube-5.6.6

export SONAR_RUNNER_HOME=/usr/local/sonar-runner-2.4

export PATH=$M2:$PATH:$SONAR_RUNNER_HOME/bin:$JAVA_8_HOME/bin

配置完成后环境变量生效

source ~/.bash_profile

试验:sonar-runner -version

启动SonarQube

cd /usr/local/sonarqube-5.6.6/bin/macosx-universal-64

./sonar.sh start

查看启动日志:

tail -f /usr/local/sonarqube-5.6.6/logs/sonar.log

关闭命令:

./sonar.sh stop

登录:http://localhost:9000/sonarqube

默认密码:admin/admin

扫描项目

  • maven 环境

Maven仓库中就有SonarQube Scanner工具的插件,只要在$M2_HOME/conf/setting.xml文件中添加如下配置

<pluginGroups>

         <pluginGroup>org.sonarsource.scanner.maven</pluginGroup>

</pluginGroups>

<profile>

     <id>sonar</id>

<activation>

      <activeByDefault>true</activeByDefault>

</activation>

<properties>

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

</properties>

</profile>

配置完成后,在项目中,执行mvn sonar:sonar,SonarQube Scanner会自动扫描,根据pom.xml文件得出项目相关信息,不需要自定义sonar-project.properties。扫描完成后就会上传只Sonarqube服务器中。稍后,登陆服务器中就可以看到分析结果了。

  • 手动扫描

打开要进行代码分析的项目根目录,新建sonar-project.properties文件

sonar.projectKey=my:task

# this is the name displayed in the SonarQube UI

sonar.projectName=My task

sonar.projectVersion=1.0

sonar.projectDescription= task 定时任务调度

# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.

# Since SonarQube 4.2, this property is optional if sonar.modules is set.

# If not set, SonarQube starts looking for source code from the directory containing

# the sonar-project.properties file.

#sources是源文件所在的目录

sonar.sources=master/src,slave/src

sonar.binaries=WebRoot/WEB-INF/classes

# Encoding of the source code. Default is default system encoding

sonar.language=java

sonar.my.property=value

sonar.sourceEncoding=UTF-8

在项目跟目录执行 输入命令:sonar-runner

项目报告介绍

查看项目报告 : http://localhost:9000/sonarqube

  • 项目列表

  • 仪表盘-custom中查看项目整体情况

阻断和严重问题,还有重复代码量都有体现,我们可以点击去看详细问题进行修复。

总结

通过SonarQube工具,作为码农可以及时审查自己的代码水平和问题,进行及时修复,优化代码的质量,这种工作我们要持之以恒的态度,才能使项目始终保持高可用,高效,干净整洁的状态。

        由于本人是刚入门的阶段,后期还会在补充SonarQube的高级配置和jenkins进行集成的介绍,敬请期待。

macOS搭建SonarQube的更多相关文章

  1. MacOS搭建本地服务器

    MacOS搭建本地服务器 一,需求分析 1.1,开发app(ios android)时通常需往app中切入web页面,直接导入不行,故需搭建本地的测试网站服务,通过IP嵌入访问页面. 1.2,开发小程 ...

  2. Docker 搭建 SonarQube

    Docker 搭建 SonarQube Docker 搭建 SonarQube 步骤 创建项目目录 mkdir -p /usr/local/sonarqube && cd /usr/l ...

  3. 在 k8S 中搭建 SonarQube 7.4.9 版本(使用 PostgreSQL 数据库)

    搭建 SonarQube 和 PostgreSQL 服务 本文搭建的 SonarQube 版本是 7.4.9-community,由于在官方文档中声明 7.9 版本之后就不再支持使用 MySQL 数据 ...

  4. centos7搭建sonarqube环境+jenkins部署全流程

    一.简介sonarqube是一个用于代码质量管理的开源平台,用于管理源代码的质量 不遵循代码标准sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写.潜在的 ...

  5. 搭建sonarqube分析golang代码

    准备postgres 为什么不使用Mysql呢,因为从7.9就不支持了 docker启动postgres docker run -d \ --name sonar-postgres \ -e POST ...

  6. Linux搭建SonarQube

    环境:linux+jdk8+mysql5.7.31+sonarqube7.5+sonar-scanner-4.4+jenkins2.249+sonar-l10n-zh-plugin-1.25.jar ...

  7. 使用docker搭建sonarqube

    sonarqube是一款代码质量检查工具,使用sonar扫描我们写过的代码,可以有助于检查出代码的bug.规范性和健壮性,有助于提高我们的代码质量. 一.安装docker 安装完成之后,命令行输入 d ...

  8. Centos7 搭建sonarQube

       可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测: SonarQube官网:https://www.so ...

  9. 基于docker-compose搭建sonarqube代码质量检测平台

    一.需求 在我们开发的过程中,难免有时候代码写的不规范,或存在一些静态的bug问题,这个时候一个良好的代码检查工具就很有必要,而sonarqube正好可以满足整个要求. 二. docker-compo ...

  10. macOS搭建开发环境

    1.包管理器Homebrew使用下面的命令安装: ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/insta ...

随机推荐

  1. Postgresql 数据库设置备份以及简单清理磁盘空间和wal日志的方法

    1. 最近想简单的进行数据库的备份工作, 因为现在数据库主要是用的pg数据库 , 所以想到用文本的方式进行, 有清理了一下日志表的数据 这里一起记录一下. 先记录一下查看比较大的表的信息. 从网上找了 ...

  2. sringboot 调试端口启用的写法

    注意 需要在 -jar 的后面加 加在前面貌似没用 $JAVA_HOME/bin/java -Dloader.path=$CAF_MODULE_PATHS -jar -Dspring.profiles ...

  3. Docker 运行 Redis Rabbitmq seata-server ftp 的简单办法

    公司里面用到了很多组件, 发现安装二进制太麻烦了, 所以想用Docker 进行安装. 这里面简单给总结一下就不在折腾了.. 1. redis docker run -d -p 6379:6379 -- ...

  4. 微信小程序-Storage

    官方文档地址:https://developers.weixin.qq.com/miniprogram/dev/api/storage/wx.setStorageSync.html ?> Sto ...

  5. WebAssembly入门笔记[3]:利用Table传递引用

    在<WebAssembly入门笔记[2]>中,我们介绍了如何利用Memory在作为宿主的JavaScript应用和wasm模块之间传递数据,但是Momory面向单纯二进制字节的读写在使用起 ...

  6. go中channel源码剖析

    channel 前言 设计的原理 共享内存 csp channel channel的定义 源码剖析 环形队列 创建 写入数据 读取数据 channel的关闭 优雅的关闭 M个receivers,一个s ...

  7. python实现zip分卷压缩与解压

    1. python实现zip分卷压缩 WinHex 开始16进制一个一个文件对比 WinRar 创建的分卷压缩和单个 zip 文件的差异. 如果想把单个大文件 test.zip -> 分卷文件  ...

  8. C/C++ 发送与接收HTTP/S请求

    HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的协议.它是一种无状态的.应用层的协议,用于在计算机之间传输超文本文档,通常在 Web 浏览器和 Web 服务器之 ...

  9. 2.3 Windows驱动开发:内核字符串转换方法

    在内核编程中字符串有两种格式ANSI_STRING与UNICODE_STRING,这两种格式是微软推出的安全版本的字符串结构体,也是微软推荐使用的格式,通常情况下ANSI_STRING代表的类型是ch ...

  10. 2.6 PE结构:导出表详细解析

    导出表(Export Table)是Windows可执行文件中的一个结构,记录了可执行文件中某些函数或变量的名称和地址,这些名称和地址可以供其他程序调用或使用.当PE文件执行时Windows装载器将文 ...