一。什么是Sonar
Sonar是 一个开源平台,用于管理Java源代码的质量。“一个质量数据报告工具+代码质量管理平台”http://docs.codehaus.org/display/SONAR/Documentation
主要特点
· 代码覆盖:通过单元测试,将会显示哪行代码被选中
· 改善编码规则
· 搜寻编码规则:按照名字,插件,激活级别和类别进行查询
· 项目搜寻:按照项目的名字进行查询
· 对比数据:比较同一张表中的任何测量的趋势
整体架构如下:
Sonar项目分析页面预览:
二.安装:
1.下载压缩包,在win/linux下面均可以运行。
自身集成jetty+java内存DB,一键启动。默认启动到http://localhost:9000
正式使用可以配置mysqlDB做持久存储。当然容器也可以切换成tomcat。 具体看官站文档。
Notice:Deploy on Tomcat application server,A minimum heap size of 512Mo is required. 吃内存大户
2.环境依赖:
JDK5++
Maven2.09 ++
三。怎么分析项目
1)maven项目:(简单的讲就是带了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中
编辑maven中config目录下的setting文件activeByDefault,Example
<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&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的脚本,一个星期用定时脚本启动、分析那么一两回就可以了。
相关推荐
Sonar 开源 Java 源代码管理平台 UT 覆盖率 Sonar 是一个开源的 Java 源代码管理平台,用于管理 Java 源代码的质量。Sonar 提供了一个质量数据报告工具和代码质量管理平台,帮助开发者提高代码质量和降低维护成本。...
Sonar作为一个代码质量管理的开放平台,通过灵活的插件机制集成了多种测试工具、代码分析工具以及持续集成工具。与传统持续集成工具(如Hudson/Jenkins)相比,Sonar不仅仅是在Web界面上直接展示各种代码检查工具的...
java管理平台源码 README.md 部署 Docker run docker run --name postgresql -p 5432:5432 -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -e POSTGRE_DB=sonar -d postgres:10.4 # 依赖postgresql docker run ...
Sonar可以自动地对源代码进行分析,提供诸如代码复杂度、重复率、bug数量等关键指标,并通过这些问题的可视化展示来帮助开发人员更好地理解代码质量和维护难度。 **本地Sonar地址**: `...
Sonar 是一个强大的开源平台,专门用于管理和提升Java源代码的质量。它的主要目标是通过静态分析来检测代码中的潜在问题,包括错误、漏洞、代码异味和复杂性,从而帮助开发者在早期阶段发现并修复这些问题,确保软件...
### Sonar Runner 进行代码质量监控 #### 一、Sonar环境搭建 为了实现代码的质量监控,首先需要搭建Sonar环境。以下是详细的步骤: 1. **安装JDK-1.5以上版本**:Sonar需要Java环境支持,因此首先要确保安装了JDK...
SonarJava插件是SonarQube平台的一个重要组成部分,主要负责分析Java代码的质量和安全性。这个插件的源码提供了超过500条预定义的规则,涵盖了编码规范、错误预防、性能优化等多个方面。这些规则可以帮助开发者发现...
Sonar 是一个用于代码质量管理的开源平台,用于管理源代码的质量。其命名来自于声呐技术,用于侦测潜藏在大海中的潜水艇,以此类比代码中的 BUG 与漏洞。 Sonar 通过插件机制,可以集成不同的测试工具、代码分析工具...
Sonar 是一个开源的代码质量管理平台,能够对代码进行静态分析,检测代码中存在的缺陷和问题。Sonar 通过对代码的分析,能够检测出代码中的错误、BUG、安全漏洞、性能问题、可读性问题等。Sonar 是一个跨语言的平台...
利用java代码,调用sonar接口,实现在sonar里面创建,更改,用户,组,权限等一系列操作
SonarQube是一款强大的开源平台,用于管理源代码的复杂性、缺陷、重复代码、代码覆盖率等质量指标。 标题中的"sonar-runner-2.4.zip"指的是SonarRunner的2.4版本的压缩包,这个版本可能包含了运行SonarRunner所需的...
2. **多种编程语言支持**:SonarLint支持多种编程语言,包括但不限于Java、JavaScript、Python、C#、C++等,覆盖了广泛的开发需求。 3. **规则定制**:SonarLint提供了大量的内置代码质量规则,开发者可以根据项目...
JaCoCo(Java Code Coverage)是一款开源的Java代码覆盖率工具,它能够为Java应用程序提供详细的代码覆盖率报告。JaCoCo通过插入字节码的方式在运行时收集覆盖率数据,支持Java应用程序、Java代理、Java Applets、...
SonarQube则是一个开源的质量管理和代码审查平台,它提供了代码静态分析、漏洞检测、代码复杂度计算以及覆盖率报告等功能。SonarQube可以与多种构建工具(如Maven)和测试框架(如JUnit)集成,提供了一站式的质量...
在IT行业中,SonarQube是一款广泛使用的代码质量管理工具,它可以帮助开发者发现并修复代码中的潜在问题。而SonarScanner是SonarQube的一个组成部分,用于执行分析任务。本文主要探讨的是当SonarScanner在连接...
其次,sonar-java-plugin是SonarQube的核心Java插件,它包含了对Java语言的全方位支持,包括语法解析、代码复杂度计算、单元测试覆盖率分析等。版本5.12.1.17771代表了插件的最新优化和改进,它提供了大量的内置规则...
sonarqube5.6.7+sonar-scanner-2.8.zip + sonar-l10n-zh-plugin-1.11.rar jdk1.8 ,你的可以本机可以是1.7 只要指定下 sonarqube的运行指向jdk1.8就可以 详情看下配置文件 配套,找了挺久的,这两个版本完美配合,...