稀土 2018-05-28
SonarQube是管理代码质量一个开源平台,可以快速的定位代码中潜在的或者明显的错误。
(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+)
(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加入你的权限,登入用户,复制过来,在继续弄......
(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=test sonar.jdbc.password=1234 sonar.jdbc.url=jdbc:mysql://数据库IP:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance sonar.web.host=你的本地IP sonar.web.context=/sonar sonar.web.port=9000
(4)重启服务,观察日志
(1)按照如下步骤安装中文插件
(2)重启,重新访问即可发现汉化成功。
默认用户名是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的集成