zoukankan      html  css  js  c++  java
  • sonar安装及使用

    Sonar安装配置:

    一.安装jdk,版本在8以上,并配置环境变量

    下载路径:http://www.oracle.com/technetwork/cn/java/archive-139210-zhs.html

    二.下载sonarqube并解压

    下载路径:https://sonarsource.bintray.com/Distribution/sonarqube/或者直接进入官网下载:https://www.sonarqube.org/downloads/

    解压,进入对应的路径启动sonarqube,例如为64的Linux系统,则启动路径为:/xx/sonarqube-6.7.4/bin/linux-x86-64 ,然后执行./sonar.sh start也可以使用./sonar.sh console查看启动的日志

    问题:

     

    此处启动的时候,有可能会出现启动之后,服务又自动停掉的情况,这是由于不能使用root用户启动es的原因,所以需要创建sonarUser用户并赋权

    adduser sonarUser #添加用户

    passwd sonarUser #创建密码

    chown -R sonarUser /xx/sonarqube(安装路径) #赋权

    chown -R sonarUser /xx/jdk1.8.0_xxx(java路径) #java赋权

    然后切换至创建的用户重新启动sonar

    默认端口为9000,启动成功之后可以访问浏览器9000端口查看:ip:9000

     启动失败常见问题

    2020.06.10 06:45:37 WARN  es[][o.e.b.BootstrapChecks] max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

    ---解决办法:

    #切换到root用户修改

    vim /etc/security/limits.conf

     

    # 在最后面追加下面内容

    *** hard nofile 65536

    *** soft nofile 65536

     

    ***  是启动ES的用户

     

    2020.06.10 06:45:37 WARN  es[][o.e.b.BootstrapChecks] max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

    解决方法:

     

    # sysctl -w vm.max_map_count=262144

    这种方法会在服务器重启后失效,使用如下方法进行配置持久化:

    # vim /etc/sysctl.conf

    vm.max_map_count = 262144

    重启之后检查配置是否生效:

     

    # sysctl vm.max_map_count

     

    2020.06.10 06:54:20 WARN  es[][o.e.b.BootstrapChecks] max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

    原文链接:https://blog.csdn.net/qq_36792209/article/details/103598558

    2020.06.10 06:45:40 INFO  es[][o.e.c.s.ClusterService] new_master {sonarqube}{5WtSSOZEQXmB-qKcyC60Rw}{iOfk5BY0SGCPWVrsqCl9Cw}{127.0.0.1}{127.0.0.1:9001}{rack_id=sonarqube}, reason: zen-disco-elected-as-master ([0] nodes joined)

    /opt/sonarqube-6.7.4/conf/sonar.properties

    注意:es启动失败,需要查看logs下  es.log web.log的log日志分析具体失败原因

    3.添加数据库,此处以mysql为例:要检测的项目的代码导入到数据库中

    数据库安装过程参见:https://www.cnblogs.com/bigbrotherer/p/7241845.html

    并创建用户名密码,例如:

    ## mysql -A -uroot -pxxx

    MySQL> CREATE USER 'sonar'@'localhost' IDENTIFIED BY 'Sonar6.7';

    MySQL> CREATE DATABASE sonar CHARACTER SET UTF8; 

    MySQL> GRANT ALL PRIVILEGES ON sonar.* TO 'sonar'@'localhost'

     

    4.打开sonarqube安装目录下的/xx/snoar/sonarqube-xx/conf/sonar.properties文件

    配置数据库的用户名密码,以及使用的数据库(当前sonar中不需要配置)

     

    五.可以在sonar中进行汉化,使用admin/admin登录后,进入Administrator,在应用市场中搜索chinese包,直接进行安装,然后重启发现已被汉化

     

    六.安装sonar-scanner

    下载版本:https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-2.8.zip

    七.解压sonar-scanner,配置sonar-scanner的环境变量,使用sonar-runner -v查看是否安装成功

     

     

    八..下载代码,在代码根目录新建sonar-project.properties文件,填写配置如下:

     

    配置文件内容如下:

    # must be unique in a given SonarQube instance

    sonar.projectKey=my:project #你的项目名

    # this is the name displayed in the SonarQube UI

    sonar.projectName=apiautocore#你的项目名

    sonar.projectVersion=1.0

     

    # 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.

    sonar.sources=src#你放所要分析代码的目录路径

     

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

    sonar.sourceEncoding=UTF-8

    #language

    至此,安装配置工作结束,可以使用代码扫描

    九.在项目根目录下 运行sonar-scannner,如果运行成功刷新http://sonarip:9000/ 下查看项目中会自动显示该项目运行分析结果

     

    代码规则需要手动下载

    SonarQube的Community版本是不支持对C语言代码进行质量分析的,Developer及以上付费版本才支持。还好有一些开源的社区插件支持,比较著名的一个就是sonar-cxx
    在如下地址下载SonarQube开源C和C++的插件
    C插件:sonar-c-plugin-1.3.1.1807.jar
    https://github.com/SonarOpenCommunity/sonar-cxx/releases/download/cxx-1.3.1/sonar-c-plugin-1.3.1.1807.jar


    C++插件:sonar-cxx-plugin-1.3.1.1807.jar
    https://github.com/SonarOpenCommunity/sonar-cxx/releases/download/cxx-1.3.1/sonar-cxx-plugin-1.3.1.1807.jar

     

     


    将下载下来的插件放到SonarQube的安装目录中的extensions/plugins中



    作者:bingfengxiao
    链接:https://www.jianshu.com/p/39614530df28
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

     

    1、如果使用sonar-scanner分析出现如下错误:

    ERROR: Error during SonarQube Scanner execution org.sonar.squidbridge.api.AnalysisException: Please provide compiled classes of your project with sonar.java.binaries property

    是由于4.12以后的soanr-java分析插件,在分析的时候提示Please provide compiled classes of your project with sonar.java.binaries property的问题

    解决:

    下载4.12以前的sonar-java插件即可替换至/xx/sonarqube-xx/extensions/plugins目录下,重启sonar

    即可,下载路径:https://github.com/SonarSource/sonar-java

    2、使用sonar分析python代码的时候,在项目路径下的sonar-project.properties文件中,分析代码不能写成python,需要填写为py才能识别,否则会一直提示需要下载python相关的插件

     

     

    自定义代码规则:

    sonarqube内置的规则是没办法启用禁用的

    那么,你有两种选择:

    1.复制一份内置的代码规则,再在它的基础上进行修改

    进入质量配置,选择需要的语言,例如选择C#,点击下拉按钮,选择复制,填写名称,则该种语言下的所有规则均被复制

     

    然后在修改配置中的规则。

    在下拉框中选择比较按钮,可以查看每个配置之间的区别

     

    配置完成后,将其设置为默认,下一次进行代码检查的时候就会使用自行创建的规则进行检测了。

    2.自行创建代码规则:

    进入质量配置,点击右上角的创建按钮,输入自定义名称,选择语言,例如选择java,则创建了一个java的规则,但是其规则为空,然后选择激活更多的规则,激活需要的规则即可,如果存在父子关系,那么两个配置下的规则也存在继承关系。

  • 相关阅读:
    蛙蛙推荐:用.net 4.0构建新浪微博开发平台应用
    蛙蛙推荐:Backbone官方文档翻译
    蛙蛙推荐:javascript异步任务流
    蛙蛙推荐:sqlserver三种分页方式性能比较
    蛙蛙推荐:css背景图片固定居中,div阴影,背景半透明,div圆角,DIV渐变
    如何高效的利用新浪微博获取信息
    蛙蛙推荐:gevent并发发送UDP包演示
    蛙蛙推荐:神马ORM都是浮云,看看史上最简单最好用的OleDbHelper
    蛙蛙推荐:写了一个简单的延迟队列
    PostgreSQL中with和without time zone两者有什么区别 规格严格
  • 原文地址:https://www.cnblogs.com/zyy98877/p/13091300.html
Copyright © 2011-2022 走看看