如何使用sonar对项目代码质量进行分析

对非maven模式的JAVA项目,可以使用sonar-runner分析

http://www.ituring.com.cn/article/69556

过程总结如下:

  1. 下载SonarQube, http://www.sonarqube.org/downloads/ http://dist.sonar.codehaus.org/sonarqube-4.3.2.zip

  2. 解压sonarqube-4.3.2.zip,cd sonarqube-4.3.2

  3. 修改conf下的sonar.properties配置项:
#修改jdbc的配置
sonar.jdbc.username=root
sonar.jdbc.password=admin
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true

#修改WebServer监听端口
sonar.web.port=9000
  1. 启动Sonar WebServer,第一次启动比较慢,需要初始化数据库表结构。
    #bin/[OS]/sonar.sh start

    bin/linux-x86-64/sonar.sh start


启动过程中,有一个坑就是可能会出现如下错误:


    java.lang.IllegalStateException: Unable to read plugin manifest from jar : /opt/sonarqube-4.3.2/lib/bundled-plugins/._sonar-java-plugin-2.1.jar
    at org.sonar.updatecenter.common.PluginManifest.<init>(PluginManifest.java:115) ~[sonar-update-center-common-1.8.jar:na]
    at org.sonar.core.plugins.PluginJarInstaller.extractMetadata(PluginJarInstaller.java:64) ~[sonar-core-4.3.2.jar:na]
    at org.sonar.server.plugins.ServerPluginJarsInstaller.copyBundledPlugins(ServerPluginJarsInstaller.java:110) ~[ServerPluginJarsInstaller.class:na]
    at org.sonar.server.plugins.ServerPluginJarsInstaller.install(ServerPluginJarsInstaller.java:67) ~[ServerPluginJarsInstaller.class:na]
    at org.sonar.server.plugins.ServerPluginRepository.start(ServerPluginRepository.java:49) ~[ServerPluginRepository.class:na]



解决办法就是删除目录下所有的._*.jar文件:

1
find . -name "._*.jar" | xargs rm
  1. 配置mvn,修改~/.m2下的settings.xml文件:

    <settings>
        <profiles>
            <profile>
                <id>sonar</id>
                <activation>
                    <activeByDefault>true</activeByDefault>
                </activation>
                <properties>
                    <!-- 修改这里 -->
                    <sonar.jdbc.url>
                      jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
                    </sonar.jdbc.url>
                    <sonar.jdbc.username>root</sonar.jdbc.username>
                    <sonar.jdbc.password>admin</sonar.jdbc.password>
    
                    <!-- Optional URL to server. Default value is http://localhost:9000 -->
                    <!-- 修改这里 -->
                    <sonar.host.url>
                      http://localhost:9000
                    </sonar.host.url>
                </properties>
            </profile>
         </profiles>
    </settings>
    
  1. 到你的project工程下,执行 mvn sonar:sonar

  2. 访问http://localhost:9000,可以看到分析结果。

结束。