mac搭建SonarQube

作者: BLACKMAMBAR | 来源:发表于2017-05-12 16:20 被阅读2262次

    背景:

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


    下面是搭建步骤:

    1、准备环境

    jdk1.8

    mysql5.6+

    2、下载安装包

    服务端:

    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

    2.1、解压路径:/usr/local

    3、创建数据库

    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;

    4、修改配置文件

    4.1 

    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

    4.2

    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版本的命令执行,启动的时候可能报错

    4.3

    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

    5、配置环境变量

    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

    6、启动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

    7、扫描项目

    7.1 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服务器中。稍后,登陆服务器中就可以看到分析结果了。

    7.2 手动扫描

     打开要进行代码分析的项目根目录,新建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

    8、项目报告介绍

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

    8.1  项目列表

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

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


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

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

    相关文章

      网友评论

      本文标题:mac搭建SonarQube

      本文链接:https://www.haomeiwen.com/subject/dbvztxtx.html