声明

本文转自:https://www.jianshu.com/p/dd4a4bc59fc3?from=singlemessage

正文

近期比较关注代码的检测,之前由于用的findbugs,因此没有可视化的界面
所以便搜索了一些代码检测管理平台,于是便搜索到了这一款平台,接下来就开始搭建吧

前期准备

  • jdk 1.8.0._131
  • maven 3.5.3
  • mysql 5.7

开始搭建

  1. 软件下载
    登陆网址 https://www.sonarqube.org/downloads/
    直接下载最新的社区版即可

     
    1
  2. 配置数据源
    打开配置文件:..\sonarqube-7.4\conf\sonar.properties
    增加配置:以下是mysql的配置

#----- DEPRECATED
#----- MySQL >=5.6 && <8.0
# Support of MySQL is dropped in Data Center Editions and deprecated in all other editions
# Only InnoDB storage engine is supported (not msyISAM).
# Only the bundled driver is supported. It can not be changed.
#sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.url=jdbc:mysql://127.0.0.1:3306/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=root
sonar.jdbc.password=root
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar.password=admin
  1. 启动
    ..\sonarqube-7.4\bin\windows-x86-64\StartSonar.bat

原先配置的数据源是Oracle,启动的时候提示连接oracle的jar包不存在,将连接oracle的jar放到路径
..\sonarqube-7.4\extensions\jdbc-driver\oracle\ojdbc14-10.2.0.1.0.jar

如果启动的时候 提示“另一程序正在使用此文件”
由于之前启动的sonar进程未关闭,有冲突;打开资源管理器(ctrl+shift+esc),杀掉java进程重新启动,问题解决

再次启动的时候,启动过会儿窗口会自动关闭,那是因为报错了,打开log文件..\sonarqube-7.4\logs\sonar.log,发现提示“远程主机强迫关闭了一个现有的连接”,如下所示:

 
2

然后打开web.log,发现提示如下:

 
3

这是因为连接的oracle的jar的版本过低

还有官方要求oracle的版本:

#----- Oracle 11g/12c
# The Oracle JDBC driver must be copied into the directory extensions/jdbc-driver/oracle/.
# Only the thin client is supported, and only the versions 11.2.x or 12.2.x must be used. See
# https://jira.sonarsource.com/browse/SONAR-9758 for more details.
# If you need to set the schema, please refer to http://jira.sonarsource.com/browse/SONAR-5000
#sonar.jdbc.url=jdbc:oracle:thin:@localhost:1521/XE

想想算了,不想去找jar包了于是便升级mysql版本到mysql5.7,然后mysql的连接上面已经提供了
配置好重新启动,由于第一次需要创建表,所以可能有点慢

  1. 登陆系统
    访问http://localhost:9000
    初始用户名 密码 admin admin

登陆系统后按照如下步骤下载安装 中文汉化包

 
4

安装好插件重启sonar,登录后如下(已经创建了一个项目,首次登录后界面有些许差异)

 
5

接下来创建第一个项目

 
6

mvn sonar:sonar \
-Dsonar.host.url=http://localhost:9000 \
-Dsonar.login=0006282044b5a5098d23d999c93f9c11eef16025

复制到maven项目的根目录下启动检查即可

检查后可以在SonarQube平台里看到一些代码的问题,如下:

 
7
 
8
 
9
  1. Windows下重启sonar:(这一步不清楚有没有更好的方法,如有请指出
  • 首先关闭SonarQube.bat窗口
  • 再Ctrl+Shift+Esc调出windows资源管理器
  • 在进程中关闭所有java.exe进程
  • 然后重新进入.\sonarqube-7.4\bin\windows-x86-64\,运行StartSonar.bat文件

IDEA集成SonarLint

SonarLint 是一个插件,可以集成到开发工具里,有以下功能

  • 当打开java文件时可自动分析静态文件,也可以手动对整个项目做分析;
  • 可连接到SonarQube同步分析规则、质量规则与自定义设置;

由于鹅主只使用IDEA,接下来就说明下IDEA如何集成

  1. 首先配置maven的settings.xml文件,目的是为了将结果同步到SonarQube平台上
    配置代码如下:
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.jdbc.url>
jdbc:mysql://127.0.0.1:3306/sonarqube
</sonar.jdbc.url>
<sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
<sonar.jdbc.username>root</sonar.jdbc.username>
<sonar.jdbc.password>root</sonar.jdbc.password>
<sonar.host.url>http://127.0.0.1:9000</sonar.host.url>
<!-- your_sonar_host是你的服务器地址,如果你的服务在本机则使用localhost -->
</properties>
</profile>
  1. 安装插件sonarLint

     
    10
  2. 配置SonarQube servers

     
    11

如果勾选 Automatically tigger analysis ,将会自动对打开的文件进行分析

  1. 绑定上一步骤创建的,以及选择项目对应的SonarQube的项目
    这一步是由于上面步骤已经在SonarQube里分析了一次所以这里可以选择SonarQube project,不清楚有没有其他方法,如果有的话请指出

     
    12
  2. 执行命令 ,即可将项目进行分析,以及将分析的结果同步到SonarQube平台上,如果只是用插件进行项目分析的话,测试发现是不会同步到平台上的,不清楚是不是哪里步骤有问题...
mvn clean install
mvn sonar:sonar

至此整个过程讲解结束,如果有疑问或者指点的话欢迎留言(`・ω・´)

SonarQube7.4安装和使用的更多相关文章

  1. 【linux】【sonarqube】安装sonarqube7.9

    前言 SonarQube 是一款用于代码质量管理的开源工具,它主要用于管理源代码的质量. 通过插件形式,可以支持众多计算机语言,比如 java, C#, go,C/C++, PL/SQL, Cobol ...

  2. CentOS6.9安装SonarQube7.6

    1 安装前准备 Java (Oracle JRE 8 or OpenJDK 8) MySQL5.6 or MySQL5.7,具体可参考Centos6.9安装MySQL5.6 SonarQube7.6, ...

  3. CentOS安装SonarQube7.9.1

    1.准备 SonarQube版本:sonarqube-7.9.1.zip,官网地址:https://www.sonarqube.org/downloads/ jdk版本:jdk-11.0.4_linu ...

  4. Centos7安装部署SonarQube7.9.1教程

    0.参考文档 LTS 7.9.1 新特性:https://www.sonarqube.org/sonarqube-7-9-lts/ JDK11 下载地址: 链接:https://pan.baidu.c ...

  5. Centos7.5 安装sonarqube-7.1

    下载sonarqube-7.1 wget -t 0 -c https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.1.z ...

  6. Windows安装使用SonarQube7.4 对java项目进行代码质量扫描

    我这里使用7.4因为使用JDK是1.8 其它版本看下依赖版本就好 1.下载7.4版本安装包 https://binaries.sonarsource.com/CommercialDistributio ...

  7. sonarqube安装部署

    环境:Os:Centos 71.下载下载地址:https://www.sonarqube.org/sonarqube-7-7/我这里下载的是sonarqube-7-7sonarqube-7.7.zip ...

  8. SonarQube安装文档

    1.SonarQube 1.1 SonarQube介绍 SonarQube是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误. SonarQube是否可以使用自定义规则由开发人员的开 ...

  9. 持续代码质量管理-SonarQube-7.3部署

    Sonar 是一个用于代码质量管理的开放平台.通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具.与持续集成工具(例如 Hudson/Jenkins 等)不同,Sonar ...

随机推荐

  1. 机器学习10种经典算法的Python实现

    广义来说,有三种机器学习算法 1. 监督式学习 工作机制:这个算法由一个目标变量或结果变量(或因变量)组成.这些变量由已知的一系列预示变量(自变量)预测而来.利用这一系列变量,我们生成一个将输入值映射 ...

  2. byte[],File和InputStream的相互转换

    File.FileInputStream 转换为byte[] File file = new File("test.txt"); InputStream input = new F ...

  3. redis-Jedis连接集群

    关闭防火墙或把端口加入防火墙 一.通过代码 @Test public void testJedisCluster() throws Exception { //创建一连接,JedisCluster对象 ...

  4. Redhat6.5安装oracle11g

    Redhat6.5安装oracle11g 一.    安装环境 linux服务器:Redhat 6.5 64位 oracle版本:oracle11gR2 远程windows服务器:已安装Xmanage ...

  5. 机器学习笔记4:SVM支持向量积的推导过程

    内容来自:https://github.com/GreedyAIAcademy/Machine-Learning 最初 支持向量机的目的:找到一条好的分割线 什么杨的分割线最好? 有最大间隔的分割线最 ...

  6. 自己开发SSO单点登录

    概述 单点登录指的是有一个中央的单点登录服务器,各个子系统和这个中央的单点登录服务器打交道,比如有A,B两个子系统. A登录后,B系统就不用再登录,直接可以访问,当其中有一个子系统选择注销时,那么所有 ...

  7. oracle 字符集安装错了,修改字符集 及创建用户 表空间 ,删除用户及所有的表

    1.首先以sysdba的身份登录上去 conn /as sysdba 2.关闭数据库shutdown immediate; 3.以mount打来数据库,startup mount 4.设置sessio ...

  8. Linux的sz和rz命令

    工作中需要在Linux和Windows之间传输文件时,一般使用winscp或者ftp工具来完成,最近才知道有sz和rz这两个命令,方便好用. sz  下载 从Linux下载文件到本机 , 在Linux ...

  9. canvas详解---矩形绘制

    首先,就上述绘制弧线的章节进行一个小小的补充: 如果我们使用了context.beginPath();紧接着后面的context.moveTo(x,y),可以改为context.lineTo(x,y) ...

  10. php怎么识别真实ip

    PHP 里用来获取客户端 IP 的变量有这些: $_SERVER['HTTP_CLIENT_IP'] 这个头是有的,但是很少,不一定服务器都实现了.客户端可以伪造.(推荐学习:PHP编程从入门到精通) ...