Linux 安装SonarQube

来源:互联网 发布:js json字符串取值 编辑:程序博客网 时间:2024/06/06 00:52

安装说明:
Jdk和sonar版本要对应, 我的jdk1.7 ,sonar-5.1.2
sonar5.64版本以后,好像要用jdk1.8

Technical Debt Synopsis 插件
这里写图片描述
SonarQube 4.5 以上 才有等级
之前的版本没有这个(至少我用的sonar_4.3.3没有)
如果需要汉化

  1. 先安装mysql数据库
    然后创建数据库用户
    create user ‘sonar’ identified by ‘sonar123’; 用户和密码
    create database sonar; 创建数据库sonar
    grant all on sonar.* to ‘sonar’@’%’ identified by ‘sonar123’; sonar.*表示sonar数据库下所有表
    grant all on sonar.* to ‘sonar’@’localhost’ identified by ‘sonar123’;
    上面2行表示给sonar用户,授权sonar数据库下面的表所有权限(all),密码可省略
    flush privileges; 生效
  2. 安装sonar
    第一步:将下载的sonarqube-5.2.zip解压后移动到/usr/local目录下。
    具体步骤如下:
    [root@master ~]# cd /storage/software/
    [root@master software]# gunzip sonarqube-5.2.zip
    [root@master software]# mv sonarqube-5.2 /usr/local/sonarqube
    第二步:配置环境变量
    [root@master ~]# vi /etc/profile
    添加
    SONAR_HOME=/usr/local/sonarqube
    export SONAR_HOME
    同时,追加到path环境变量中
    保存退出并使配置生效
    [root@master ~]# source /etc/profile 使环境变量立即生效
    第三步:配置sonar.properties 和wrapper.conf 环境
    [root@master ~]# vi /usr/local/sonarqube/conf/sonar.properties
    打开后,修改如下:
    **sonar.jdbc.url=jdbc:mysql://ip:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
    sonar.jdbc.username=root
    sonar.jdbc.password=123456
    sonar.sorceEncoding=UTF-8
    sonar.login=admin 用于登录sonar
    sonar.password=admin**
    以及页面的信息
    sonar.web.context=/sonar
    sonar.web.host=ip
    sonar.host.url=http://ip:9000
    最后访问的时候就是http://ip:9000/sonar 进主页,login登录 admin,admin
    上面的host和url,尽量一致。

第四步:配置 jdk环境/usr/local/sonarqube/conf/目录下 wrapper.conf
wrapper.java.command=/opt/JDK/jdk1.7.0_67-64/bin/java
最好是绝对路径,别用变量$JAVA_HOME(可能是我没有先配置jdk,导致上面的定义失效)
如果忘记配置jdk 会启动sonar显示成功,就是没有进程,
查看日志,分析 /usr/local/sonarqube/logs
[root@ods-mgr linux-x86-64]# ./sonar.sh start
Starting SonarQube…
Started SonarQube. 但是,没有进程,也不能访问地址

第五步:启动服务
启动之前,先将sonar ,conf 目录下sonar.sh 和wrapper.conf(服务器部署)增加可执行权限
命令:chmod +x sonar.sh wrapper.conf
[root@master ~]# /usr/local/sonarqube/bin/linux-x86-64/sonar.sh start
另外,启动/停止/重启命令如下:
./sonar.sh start 启动服务
./sonar.sh stop 停止服务
./sonar.sh restart 重启服务

显示Process[web] is up 表示sonar启动,

第六步:访问SonarQube Web管理界面。
如果能够看到sonar主页证明SonarQube安装并启动成功
下面是部署sonar的截图,服务器类似,
这里写图片描述
最后,如果失败,查看log目录下sonar.log,排查问题,往往是哪里配置不对。

常见问题:

  1. Unable to start JVM: No such file or directory (2)
    java.lang.IllegalStateException: Webapp did not start
    The web application [sonar] appears to have started a thread named [JRubyJIT-2] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
    是sonar配置信息没有和mysql信息对应,
  2. Access denied for user ‘root’@’xxx’ (using password: YES)

    用户访问被拒绝’根’”’ods-mgr.cs1cloud。内部的错误
    参考,http://blog.csdn.net/leili0806/article/details/8573636
    其实就是mysql数据库权限的问题

  3. Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.2
    或 java.lang.UnsupportedClassVersionError: org/sonarsource/scanner/maven/SonarQubeMojo : Unsupported major.minor version 52.0

    stanford parser和jdk版本对应关系:
    J2SE 8 = 52,
    J2SE 7 = 51,
    J2SE 6.0 = 50,
    J2SE 5.0 = 49,
    JDK 1.4 = 48,
    JDK 1.3 = 47,
    JDK 1.2 = 46,
    JDK 1.1 = 45
    解决办法,降低sonar或者用jdk1.8,有时,也未必就的这个2个原因,也可能是sonar没有安装成功,

    4.org.jruby.rack.RackInitializationException:java.lang.NullPointerException
    JRuby 一个采用纯Java实现的Ruby解释器
    /usr/local/sonarqube-5.1.2/web/WEB-INF
    [root@ods-mgr WEB-INF]# more web.xml

    jruby.compat.version
    1.8 对应的是的jdk1.8

    Database relates to a more recent version of sonar

5.SonarQube is under maintenance. Please check back later.
因为之前你用低版本的sonarquhe用了sonar这个数据库,用高版本的sonarqube时,要么用新的数据库,要么更新。
方法一
http://www.cnblogs.com/wade-xu/p/4549952.html sonar升级问题
如果想更新sonar版本,必须重新建数据库,否则报上面的错。
新数据库,也要授权。
参考旧SonarQube的配置更新如下两个配置文件,同时,maven的配置也要改。
/sonar/sonarqube-4.0/conf/sonar.properties
/sonar/sonarqube-4.0/conf/wrapper.conf
注意:不要拿旧文件直接覆盖这两个文件。(来自官网)
方法二
那就访问http://ip:9000/sonar/setup(这个地址就是你的访问地址+setup) 显示更新信息
之后就可以了。

0 0
原创粉丝点击