SonarQube的安装、配置与使用
什么是Sonar?Sonar是一个开源的代码质量管理平台。它能对代码进行如下7个维度的管理。
http://www.sonarqube.org/wp-content/themes/sonar/images/7axes.png
使用插件,它可以对20多种语言进行代码质量管理,这其中包括Java,C#,C/C++,PL/SQL等等。
安装Sonar
1.下载sonar,地址http://www.sonarqube.org/downloads/。通常选取稳定版本下载即可,这是一个zip文件。
2.解压下载的sonar到一个目录。我们称这个解压后的路径为SONAR_HOME
3.进入$SONAR_HOME/bin/${os-version}/,找到sonar.sh,执行./sonar.sh console即可。在windows下是StartSonar.bat。
如本文演示使用的是win的64位系统,则打开D:\Program Files\sonarqube-5.3\bin\windows-x86-64\StartSonar.bat
4.现在进入http://localhost:9000,就看到了界面。默认的登录使用admin:admin
这个时候,Sonar已经运行啦。但是在生产环境是不行的。上面跑起来的只是一个样例,使用的是h2内存数据库。我们可不想重启服务后,生产环境的数据都没了。
4.启动浏览器,访问http://localhost:9000,如出现下图则表示安装成功。
http://www.cnblogs.com/winner-0715/p/data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABUEAAAE8CAIAAABhCef7AAAgAElEQVR4nO3d/5ccV33nf/8v0ilJNkYgJMeWbbBQW2s+XmfHgSyMg+FDBOow4HxOspsBvBFRFg1uGycoC2b4aGAMPp+PtoecEI4czCSTsckP/VkiPM7wiXEcj2fMaXMYG3OGHRYcf0O1P1R31f3yvrduf5uumno+jo49U1N1695b1d31qltVfUUEAAAAAEB53PrgDwvyb4cb/sorr1yxw6ssgqt+4+3jrgIAAAAAoE9jj+5k+BF6xye/esMf/LeD7/zN5Nd9B656xyfmrv3gp/btPzDeigEAAAAA+jD26E6GH5L9B97xibm3/+cvXft/3v2Wd71v/1VvjqJo34GrDv37O995ZuGm//L1N113LJnxyHt//+3/eTbat3+s1QUAAAAA9Gzs0Z0MPxz79h848t6PX/M7f3j91L3HZ771f3xl9aa7H3zruyajffuiKHrLv/uPN3/uO9f8zh8mvx669Xdu/IMv7CPGAwAAAECpjD26k+FH4spD1x55710n/vzvj99z8eA7/0MURfuvevONf/jFG//gC8kI/KHbPnjt7/7xuKsJAAAAAOjB2KM7GX6U9h84Mvl/3fLF/++6D5/Zt29/tG/fdR/+k3d88qvJCPz1H//cW068Z9xVBAAAAACECs7Ya9/4n3Hqe/8w1gz/iUezqsSPfqKvhpcyw7/vfe9rNptXX311T0tdeeja42e/edPdD+5/08Eoiq7/2H1H62ejKNp35ZuOffr/5cZ4AAAAACiLkHR9/49iySvf+NaOZ/jbv/KcWJfek3wpM/zdd98dx/GhQ4d6XXDfgave/p8eeOeZhWj/gWjf/neeWTh487ujKHrbxMk3H7ttBDUFAAAAAAxfTwH++dU1fUB+mDE+v67a8PtzX7l9oAH5amX4KIr27dt/090Pvn36/4727bvyyA3H77m478BVQ68hAAAAAGB0cqL1P2wr6V390/PfS/7wP3961w5l+CyvG2E9G5t/7iu3Bze8chk+iqL9V7/15vv/7vBvfyyKoms/9F+ued/vD1CXk+cfzzx85kTvi9sLiROHZaSFu5w483CfHbSzTp5//PHHz580pp4483Dxqx5G212thtoz72yrldr1tWKlwifOPNxPGWr/9PVqTpfLKlC6boyG0ZPpsoNWZQR2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Ll++vL29vb29PTc39+STT37hC184e/bss88++9BDD/3kJz954oknXn311e9///vXXnttFEX79+//+te//sYbb7zwwgtPPfXUz3/+8y9/+cuuxu87cNWt80/u27e/lx4znFQuvjV2tfQ+0O5hbjav/zLmk+c7T06yrtDMrt40wq++Inu/7646e56EUJnR0W+JNVYt1iSdaDwsWr1+9fzJYbfCuAJC2kxGBbTWKXnGrpjcIntkT19uhA00blby1m3kFeuuUHwtydXz7/ZaSzsFqJtCrnVghhdfiSEZfkd60tWNkdiT0t7r6EmjGyNfT3pqIqzRLHnsL/MoZBOL7wYAAOx6avwxjiytj307g5hFjTzDd/79Q/qMtm5ot6eMNMNHwn3x/QX4SLyW/vrrrz916tTHP/7xd7/73eoT3a+88sr3v//9d9111+23355+6frhw4ePHz/+zne+M/n1bW972/Hjx48fP54sePvtt3/0ox+98cYbr7766mR6FEU33XTT8ePH1SfSJd797nd/4hOfOHXq1P333x/H8Z/+6Z8m03/zN3/zrrvuSp5sd8MNNxw+fPjo0aPJr3feeecf//Ef33nnnemXwyeuvfbaD3zgA3feeaf6PDzRVdfcGElPrQcwJjnBcCgrqEDgGnk3RlXpSQAAMLDR3IM26Ph5GuP9N8YPK8MntCvoe07vCef98GN04MCBJ598cnt72875ACqgc852JBcq79TdIwUwym6MKtWTAABgICO6A23wa+A7Md546N1IM/wwFDHDR1H0nve859Of/rT4ve4A0JfkGi9y5+DoSQAAkGvkd50NIcMP6d8IGudT0AwPAAAAAIDL2KM7GR4AAAAAgCBjj+5keAAAAAAAgow9upPhAQAAAAAIMvboToYHAAAAACDI2KM7GR4AAAAAgCBjj+5keAAAAAAAgow9uo8zw/8vAAAAAABQeGR4AAAAAADKgQwPAAAAAEA5kOEBAAAAACgHMjwAAAAAAOVAhgcAAAAAoBzI8AAAAAAAlAMZHgAAAACAciDDAwAAAABQDmR4AAAAAADKgQwPAAAAAEA5kOEBAAAAACgHMjwAAAAAAOVAhgcAAAAAoBzI8AAAAAAAlAMZHgAAAACAciDDAwAAAABQDmR4AAAAAADKoZ8M/4N7r7nimnt/oE/85oeuuOJD3xxWtQAAAAAAgIEMDwAA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
配置Sonar数据库
1.打开mysql,新建一个数据库。
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
这样就准备好了数据库sonar
2.打开sonarqube安装目录下的D:\Program Files\sonarqube-5.3\conf\sonar.properties文件
3.在mysql5.X节点下输入以下信息
#----- MySQL 5.x
# Only InnoDB storage engine is supported (not myISAM).
# Only the bundled driver is supported. It can not be changed.
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.jdbc.username=root
sonar.jdbc.password=root
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar.password=admin
url是数据库连接地址,username是数据库用户名,jdbc.password是数据库密码,login是sonarqube的登录名,sonar.password是sonarqube的密码
配置好之后,这样所有的数据都会存放到mysql内啦。不用再担心数据问题啦。要添加其他数据库,同理。
4.重启sonarqube服务,再次访问http://localhost:9000,会稍微有点慢,因为要初始化数据库信息
5.数据库初始化成功后,登录
把Sonar变为中文
http://www.cnblogs.com/winner-0715/p/data:image/png;base64,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
把Sonar放到JEE容器内
默认的情况下,sonar启动是采用内置的jetty的,为了方便管理,一般在生产环境可以放到JEE容器内,这里就以Tomcat为例了。
Sonar在经过上面几步的配置后,已经满足了基本的需求。接下来就可以进入到$SONAR_HOME/war/内。执行build-war命令。这样就生成了一个sonar.war,把这个war包发布到Tomcat即可。
页:
[1]