`
sw1982
  • 浏览: 504536 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
阅读更多

一。什么是Sonar

Sonar 一个开源平台,用于管理Java源代码的质量。“一个质量数据报告工具+代码质量管理平台”http://docs.codehaus.org/display/SONAR/Documentation

主要特点

 

·                       代码覆盖:通过单元测试,将会显示哪行代码被选中

·                       改善编码规则

·                       搜寻编码规则:按照名字,插件,激活级别和类别进行查询

·                       项目搜寻:按照项目的名字进行查询

·                       对比数据:比较同一张表中的任何测量的趋势

 

 

 

整体架构如下: 


 

 

Sonar项目分析页面预览:


二.安装:

1.下载压缩包,在win/linux下面均可以运行。

自身集成jetty+java内存DB,一键启动。默认启动到http://localhost:9000

正式使用可以配置mysqlDB做持久存储。当然容器也可以切换成tomcat 具体看官站文档。

 

NoticeDeploy on Tomcat application serverA minimum heap size of 512Mo is required. 吃内存大户

 

 

 

2.环境依赖:

JDK5++

Maven2.09 ++

 

三。怎么分析项目

 

1maven项目:(简单的讲就是带了pom.xml)


 E:\>cd ws1\test 然后运行:

     1.mvn clean install -Dtest=false -DfailIfNoTests=false (第一步其实可以忽略)
        2. mvn sonar:sonar

之后再回到页面上,查看项目分析结果。 (第2步的mvn操作其实可以集成到pom.xml里面作为一个

 

2)非maven项目:

方法:给项目放一个pom.xml,不需要写复杂的依赖和编译操作,简单copy如下配置,改改项目名和java代码的目录路径即可!(标红)

 

<project xmlns="http://maven.apache.org/POM/4.0.0"

       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <groupId>song</groupId>

  <artifactId>test</artifactId>

  <name>test</name>

  <version>1.1.0</version>

  <build>

        <sourceDirectory>src</sourceDirectory>

        <outputDirectory>bin</outputDirectory>

        <plugins>

           <plugin>

              <groupId>org.apache.maven.plugins</groupId>

              <artifactId>maven-compiler-plugin</artifactId>

              <configuration>

                  <source>1.5</source>

                  <target>1.5</target>

                  <excludes>

                      <exclude>**/*.*</exclude>

                  </excludes>

              </configuration>

           </plugin>

        </plugins>

  </build>

  <properties>

      <sonar.dynamicAnalysis>false</sonar.dynamicAnalysis>

  </properties>

</project>

 

详细文档在:http://docs.codehaus.org/display/SONAR/Collect+data#Collectdata-Mavenprojects

 

 

3)将sonar集成到maven

编辑mavenconfig目录下的setting文件activeByDefaultExample

 

<settings>
    <profiles>
        <profile>
            <id>sonar</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <!-- EXAMPLE FOR MYSQL -->
                <sonar.jdbc.url>
                  jdbc:mysql://localhost:3306/sonar?useUnicode=true&amp;characterEncoding=utf8
                </sonar.jdbc.url>
                <sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
                <sonar.jdbc.username>sonar</sonar.jdbc.username>
                <sonar.jdbc.password>sonar</sonar.jdbc.password>
                <!-- SERVER ON A REMOTE HOST -->
                <sonar.host.url>http://myserver:1234 </sonar.host.url>
            </properties>
        </profile>
     </profiles>
</settings>

 

当然,这样做的代价就是:export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=256m" maven编译的内存也需要加到512M

四。总结

1.作为代码分析工具来使用,其实很简单。下载standalone包直接运行,不需要配置db和容器,直接找到项目分析就是。(用maven管理的项目直接分析,非maven项目按上面的方法加一个最精简的pom.xml配置即可。sonar分析代码的时候并不需要复杂的jar包依赖,指定了源代码目录即可

 

2.作为持续性的代码监控,比如关心代码量的变更,和质量走向,那么配置DB就是必须的了。而且要准备1.5G+空闲内存的机器跑sonar,在触发到代码分析的时候,对CPU的消耗也是比较大的。

 

3.将sonar集成到持续集成是非常不明智的。会导致每次编译都去分析一次。比较建议做成crontab的脚本,一个星期用定时脚本启动、分析那么一两回就可以了。

 

 

  • 大小: 32 KB
  • 大小: 66 KB
  • 大小: 14.7 KB
分享到:
评论

相关推荐

    sonar eclipse插件sonarlint

    sonar eclipse插件sonarlint,原先的插件已经被启用,这是最新的,如果连接本地sonar服务器,需要在eclipse.ini中配置启动参数,参数为org.sonarlint.eclipse.core/server_url 值为sonar服务器地址,如果不配置默认...

    sonar汉化包等插件

    sonar汉化包sonar汉化包sonar汉化包sonar汉化包sonar汉化包sonar汉化包sonar汉化包sonar汉化包sonar汉化包sonar汉化包sonar汉化包

    java代码集成sonar接口,实现sonar操作的demo

    利用java代码,调用sonar接口,实现在sonar里面创建,更改,用户,组,权限等一系列操作

    sonar中文插件1.28

    sonar中文插件1.28,适用于最后一个jdk1.8版本的sonar,sonar-l10n-zh-plugin-1.28.jar

    SonarLint for Visual Studio 2019、2022

    内含两个版本[SonarLint for Visual Studio 2019、SonarLint for Visual Studio 2022](适用于VS2019、VS2022两个版本,非此版本的不适配勿下载):SonarLint 是一个免费的开源IDE 扩展,可识别并帮助您在编写代码时...

    sonar7.8.zip

    sonar-gitlab-plugin-4.0.0.jar sonar-l10n-zh-plugin-1.28.jar sonar-pmd-plugin-3.2.0-SNAPSHOT.jar sonar-scanner-cli-4.0.0.1744-linux.zip sonarqube-7.8.zip

    Sonarlint中文使用手册

    Sonarlint是一款强大的代码检测插件,用户可以IDE上实时检测自己的代码问题。本文详细介绍了Eclipse和Idea集成Sonarlint的步骤和使用方法

    sonar的checkStyle插件

    sonar的checkStyle插件,直接下载放到sonar的插件文件夹就可以用了。

    UCI之Sonar数据集

    UCI的一个数据集Sonar,已经用MATLAB转化为.mat数据文件了,在MATLAB里面可以直接load

    【中文版】sonar实战

    功能强悍的代码质量管理平台,中文版本说明,sonar入门篇

    sonar-scanner-2.8

    sonar-scanner-2.8

    sonar汉化包-所有版本.zip

    sonar汉化包完整版,从1.10到1.29共20个汉化jar包,sonar与汉化包有版本对应,版本对应关系可参照我的博客《Jenkins集成Sonar(2/3)登录并添加项目进行扫描+汉化》,将汉化包放到sonar的extensions/plugins目录下...

    idea 安装sonarlint 无坑

    idea 安装sonarlint 无坑可用 操作步骤: 1、解压文件,将SonarLint文件夹复制到idea安装目录下的plugins下 2、重启idea 3、进入idea的setting,找到plugins,在里面勾选上SonarLint,应用确定 4、再次重启idea,...

    Sonar-runner Sonar代码扫描辅助工具sonarScanner

    sonar4版本扫描辅助程序. 向服务器上传代码并做扫描分析. 使用方式: CMD切换到项目根目录下(sonar-project.properties文件所在目录)运行 sonar-runner

    sonar.rar_mat数据处理_mat数据集_sonar data_sonar dataset_sonar.mat

    sonar数据集,已处理成.mat格式,包括数据和类标,用于机器学习,聚类,分类等问题的研究

    sonar+sonar.hpi

    Sonar 是一个开源的质量管理平台,专注于从项目到类方法的持续的分析和测量技术质量,它把代码质量相关软件集成到一起统一管理

    sonar-findbugs-plugin.jar

    sonar-findbugs-plugin.jar, sonar-findbugs-plugin.jar, sonar-findbugs-plugin.jar, sonar-findbugs-plugin.jar,

    FCM_sonar_sonar_fcm_matlab_

    Environment: MATLAB algorithm: FCM function: classification of sonar data

    sonar3.2.zip

    sonar3.2

    sonarqube5.6.7+sonar-scanner-2.8.zip + sonar-l10n-zh-plugin-1.11.rar 配套和配置文件

    sonarqube5.6.7+sonar-scanner-2.8.zip + sonar-l10n-zh-plugin-1.11.rar jdk1.8 ,你的可以本机可以是1.7 只要指定下 sonarqube的运行指向jdk1.8就可以 详情看下配置文件 配套,找了挺久的,这两个版本完美配合,...

Global site tag (gtag.js) - Google Analytics