• Linux中 SonarQube代码质量管理平台以及C++插件安装


    SonarQube是管理代码质量一个开源平台,可以快速的定位代码中潜在的或者明显的错误。

     SonarQube安装

      1、环境准备

          (1)sonarQube 下载地址https://www.sonarqube.org/downloads/

          注:官网显示目前最新版本是7.1

          (2)sonarQube Scanners 下载地址http://docs.sonarqube.org/display/SCAN/Analyzing+Source+Code

          

          (2)jdk1.8  (注:根据官网信息,需要用到jdk1.8,如果你的环境已经配置了JAVA_HOME是jdk1.7,没关系我们可以手动指定sonar的运行jdk为1.8(后面配置的时候说明))

          (4)安装mysql,可以是远程连接(注:mysql版本需要是5.7+

           

       2、SonarQube 安装

        (1)指定jdk1.8(如果系统环境变量已经是1.8忽略此步)

           下载好sonarQube后,解压打开conf目录,修改 wrapper.conf

           

        (2)启动sonar

    [root@fastdfs1 sonarqube-5.6.4]# ./bin/linux-x86-64/sonar.sh start

        (3) 观察启动日志

    [root@fastdfs1 sonarqube-5.6.4]# tail -200f ./logs/sonar.log 

        (4)访问http://你的IP:9000/sonar 看到欢迎界面即成功

                   (5)这里如果你是root用户的话,可能会遇到问题,sonar.log显示服务器stop了,没有起来,查看./logs/es.log

    java.lang.RuntimeException: can not run elasticsearch as root

        elasticsearch不能使用root,网上查了点资料,说是在bin/elasticsearch加入ES_JAVA_OPTS="-Des.insecure.allow.root=true"就能解决问题,但是发现也不管用,查了下是新版本这条命令也废弃了,于是悲剧的只能新建用户了,

        在linux中useradd yourname, passwd yourname, 建立用户,然后在/etc/sudoers加入你的权限,登入用户,复制过来,在继续弄......

        (6)继续失败,上面的问题是解决了,又出现新问题了:

    Failed to initialize end point associated with ProtocolHandler ["http-nio-127.0.0.1-9001"]

          貌似是端口被暂用了,改一个,改成9011,在起一次,ps ux | grep Sonar一下,程序起来了,用地址登入,失败,

          最后都像放弃了,把端口改回9000, sonar.web.host注释掉, 也注释掉sonar.web.context, 把

    sonar.jdbc.username=sonar
    sonar.jdbc.password=sonar, 然后就OK了,能进去了
    总算明白了, 这里的username, password应该是mysql数据库的用户和密码, 打开网站后,默认的用户和密码是admin/admin, 这坑爹的网络资料,故意让我们入坑

      3、SonarQube配置

        (1)mysql 添加sonar用户

    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;

        (2)sonarQube配置mysql,修改/conf/sonar.properties

    复制代码
    sonar.jdbc.username=sonar #数据库用户
    sonar.jdbc.password=sonar #数据库密码
    sonar.jdbc.url=jdbc:mysql://数据库IP:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
    #sonar.web.host=你的本地IP
    #sonar.web.context=
    sonar.web.port=9000
    复制代码

        (4)重启服务,观察日志

      4、SonarQube汉化

        (1)按照如下步骤安装中文插件  

         

        (2)重启,重新访问即可发现汉化成功。

                   ( 3 ) 安装C++插件,由于sonar自带的CFamily收费,而且贵的死人,屌丝程序员只好自选出路, 有大神介绍了一个C++插件,那作者就是看CFamily插件收钱不爽,自己写了个更好的,牛啊,看连接

    https://github.com/SonarOpenCommunity/sonar-cxx/tree/cxx-1.0.0

      下载图中的c-plugin.jar cxx-plugin.jar文件, 按照下图操作:

      简单使用

        默认用户名是admin 密码admin

        (1)配置sonar-scanner(如果SonarQube和Sonar-scanner不在同一台服务器,修改/sonar-scanner-2.8/conf/sonar-scanner.properties)

    sonar.host.url=http://sonarQubeIP:9000
    sonar.jdbc.username=test
    sonar.jdbc.password=1234
    sonar.jdbc.url=jdbc:mysql://数据库IP:3306/sonar?useUnicode=true&characterEncoding=utf8

        (2)sonar-scanner指定jdk1.8

        修改/sonar-scanner-2.8/bin/sonar-runner

               

       至此,SonarQube和Sonar-Scanner配置成功了。后面介绍Jenkins和Sonar的集成

  • 相关阅读:
    JAVA -数据类型与表达式---表达式
    JAVA -数据类型与表达式---基本数据类型
    【网易官方】极客战记(codecombat)攻略-森林-背靠背-back-to-back
    【网易官方】极客战记(codecombat)攻略-森林-荆棘农场thornbush-farm
    【网易官方】极客战记(codecombat)攻略-森林-村庄守护者
    【网易官方】极客战记(codecombat)攻略-森林-If 的盛宴
    【网易官方】极客战记(codecombat)攻略-森林-鹰眼
    【网易官方】极客战记(codecombat)攻略-森林-野餐毁灭者
    【网易官方】极客战记(codecombat)攻略-森林-巡逻兵克星A
    【网易官方】极客战记(codecombat)攻略-森林-巡逻兵克星
  • 原文地址:https://www.cnblogs.com/firebet/p/14009021.html
Copyright © 2020-2023  润新知