前言

初到新公司,接手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. reposync与createrepo创建离线yum源的方法

    背景 昨天晚上进行了在线升级银河麒麟V10SP2的audit和mate-indicator的rpm包 今天想了下,如果机器无法上网. 必须得在公司内部搭建一套离线的rpm源进行处理 想了下还是使用re ...

  2. SQLSERVER2008R2 本地客户端无法连接的问题

    sqlserver 数据库无法连接问题. 1. 问题现象与简单分析 今天同事找我说一个 SQLSERVER2008R2的测试环境无法连接了. 提示信息为: 当时猜测是 数据库的 配置出问题了. 去查看 ...

  3. 【译文】IEEE白皮书 6G 太赫兹技术的基本原理 2023版

    第一章 简介 太赫兹波是介于微波和光波之间的光谱区域,频率从 0.1THz ~ 10THz 之间,波长在 3mm ~ 30μm 之间.提供大块连续的频带范围以满足对 Tbit/s 内极高数据传输速率的 ...

  4. 初识VUE响应式原理

    作者:京东零售 吴静 自从Vue发布以来,就受到了广大开发人员的青睐,提到Vue,我们首先想到的就是Vue的响应式系统,那响应式系统到底是怎么回事呢?接下来我就给大家简单介绍一下Vue中的响应式原理. ...

  5. MySQL控制权限

    编写顺序和执行顺序是不一样的 编写顺序: SELECT 字段列表 FROM 表名列表 WHERE 条件列表 GROUP BY 分组字段列表 HAVING 分组后条件列表 ORDER BY 排序字段列表 ...

  6. python中,Microsoft Visual C++ 14.0 or greater is required问题解决方案

    今天在写一个小程序,安装依赖的时候发现这个问题,平时都是直接安装Visual Studio解决,但是这个安装太大了,所以解决看看怎么安装是最方便的,最容易解决的. 下面这个就是出现的问题: build ...

  7. 从零开始配置vim(32)——最后再说两句

    很抱歉我决定结束这个系列的内容了.原本我打算介绍markdown.orgmode相关的配置,甚至还打算介绍如何在vim 中使用 emacs 的 org-agenda 来进行日常的任务管理.但是出于一些 ...

  8. 大语言模型的预训练[5]:语境学习、上下文学习In-Context Learning:精调LLM、Prompt设计和打分函数设计以及ICL底层机制等原理详解

    大语言模型的预训练[5]:语境学习.上下文学习In-Context Learning:精调LLM.Prompt设计和打分函数(Scoring Function)设计以及ICL底层机制等原理详解 1.I ...

  9. 又学了一招:微软科普Windows 11电脑自动清理释放硬盘

    你是不是每次都等到电脑内存被占满,磁盘"红"成一片,才想起来去清理那些没用的程序or文件? 今天微软官方科普了一个小技巧:既然都用上了Windows 11 ,为什么不让电脑帮你自动 ...

  10. 【可观测性系列】 OpenTelemetry Collector的部署模式分析

    作者简介:大家好,我是蓝胖子 ️博客首页:主页蓝胖子的编程梦 ️热门专题:我的服务监控实践 ,500行代码手写Docker **每日一句:白日莫闲过,青春不再来 大家好,我是蓝胖子,在前面我介绍了下O ...