今天突然心血来潮想来搭建sonar检测一下手上的项目代码质量, 首先当然是到sonar官网下载最新版本了, 地址在这 :http://www.sonarqube.org/downloads/ , 我下载的是SonarQube 4.0 , 然后解压, 进根目录里的bin目录下,找到对应的操作系统版本的启动文件, 双击StartSonar.bat 后看到这个界面就表示启动了
默认的端口是9000, 打开浏览器访问一下 http://localhost:9000/ , 一切正常的话你应该可以看到这个界面
这样就表示启动成功了, 默认的帐号密码均是admin, 尽管我电脑的操作系统是英文版的, 但我还是比较愿意看到中文版的sonar, 所以这里我要先去将它中文化, sonar具有很强的扩展性,所以中文插件也是有的, 在它官网里就提供了, 地址在这:http://docs.codehaus.org/display/SONAR/Chinese+Pack ,我下的是1.7版本,得到sonar-l10n-zh-plugin-1.7.jar, 然后将它放到sonar的sonarqube-4.0\extensions\plugins这个目录下,重启你的sonar服务, 此时再次访问就应该是这样的
好了, 到这里之后我们就需要去配置数据库了, 因为sonar会将分析项目的结果保存在数据库里, 所以我们在继续使用之前需要去配置数据库连接, 在sonarqube-4.0\conf目录下有一个sonar.properties文件,里面放置了各种sonar支持的数据库连接和连接池的配置,这里我们使用MYSQL的方式, 注释掉它默认的配置, 解开MYSQL跟更改数据库帐号密码, 它看起来应该就像是这样的
保存, 然后打开去你的MYSQL中创建一个名为sonar的数据库,然后再重启sonar服务, 成功启动后就可以检查一下你的sonar数据库里有没有表了, 它应该是这样的。
如果一切正常,那么现在就需要来配置maven了, sonar是通过Maven2 插件来分析源代码并把结果注入到数据库中.因此需要在Maven的配置里设置数据库的属性。进入maven安装目录apache-maven-2.2.1\conf下, 修改settings.xml文件, 添加如下配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<
profiles
>
<
profile
>
<
id
>sonar</
id
>
<
properties
>
<
sonar.jdbc.url
>jdbc:mysql://localhost:3306/sonar</
sonar.jdbc.url
>
<
sonar.jdbc.driver
>com.mysql.jdbc.Driver</
sonar.jdbc.driver
>
<
sonar.jdbc.username
>root</
sonar.jdbc.username
>
<
sonar.jdbc.password
>root</
sonar.jdbc.password
>
</
properties
>
</
profile
>
</
profiles
>
<
activeProfiles
>
<
activeProfile
>sonar</
activeProfile
>
</
activeProfiles
>
|
保存后找到你需要被sonar分析的maven项目根目录,比如我的一个CMS的项目根目录, 它看起来是这样(这里注意要被分析的项目必须带有pom文件)
然后运行命令行进入该目录, 执行maven 命令 mvn clean install sonar:sonar 然后就是漫长的等待, 直到你看到这个界面
就表示大功告成, 可以去访问你的sonar服务, 刷新一下, 将会看到多了一个项目出来, 点击分析后就可以看到这个界面, 这是我的
好了, sonar的安装和配置MYSQL, 分析maven项目的过程就演示到这里, 下次再继续深入演进。
(拖堂时间。。。)
下面列出了一些常用的插件:
JavaScript代码检查:http://docs.codehaus.org/display/SONAR/JavaScript+Plugin
python代码检查:http://docs.codehaus.org/display/SONAR/Python+Plugin
Web页面检查(HTML、JSP、JSF、Ruby、PHP等):http://docs.codehaus.org/display/SONAR/Web+Plugin
scm源码库统计分析:http://docs.codehaus.org/display/SONAR/SCM+Stats+Plugin
文件度量:http://docs.codehaus.org/display/SONAR/Tab+Metrics+Plugin
时间表显示度量结果:http://docs.codehaus.org/display/SONAR/Timeline+Plugin
http://docs.codehaus.org/display/SONAR/Motion+Chart+Plugin
下课!