如果您的项目是基于Maven构建,那么推荐使用此方式。
前提准备
必须先对Maven的本地仓库进行一些配置,以便Maven Sonar插件正常运行。
相关的配置请参考本手册前面章节。
分析Maven工程
分析Maven工程只需要在pom.xml存在的目录下运行MVN的Sonar插件指令。Sonar指令运行前最好运行install指令,保证代码最新。
推荐的方法
mvn clean install -DskipTests=true
mvn sonar:sonar
设置skipTests=true是为了避免单元测试执行两次。install和sonar指令默认都会执行单元测试。你可以禁用单元测试,相关的配置参考Maven的相关文档。
注意:
使用Eclipse
确保没有使用maven embedder插件。定义Maven执行环境为本地安装的Maven,使用最新的Macen插件,不要勾选"resolve workspace artifacts"。
详细说明:http://jira.codehaus.org/browse/SONAR-929
高级选项
一些Sonar不支持的高级选项请不要使用,如"--projects" 和 "--resume-from"。
替代方法
如果你不想使用上面的两行指令,你可以直接使用下面的一行指令。
mvn clean install sonar:sonar -Dmaven.test.failure.ignore=true
这个指令运行时,单元测试会执行两次,如果加上参数DskipTests=true。Sonar就会执行单元测试,代码分析报告中也不会有单元测试的结果。
参数-Dmaven.test.failure.ignore=true确保及时单元测试执行失败,Sonar的分析结果依然会收录。
配置Sonar分析
和Sonar Runner一样,可以对Sonar分析进行一些参数配置。
一个简单的pom.xml配置示意here。
额外的分析参数,请下面章节中。
安全:
从Sonar3.4开始,如果一个工程被匿名访问,执行代码分析时,'sonar.login' and 'sonar.password'属性是必须的。这些属性必须属于该项目‘User’角色下的一个用户。你可以通过其他方式,提供这些属性:
直接通过命令行:
-Dsonar.login=myUser -Dsonar.password=myPassword
在pom.Xml文件
在Maven全局配置文件settings.xml
特殊的一个项目允许匿名分析:
1、'sonar.forceAuthentication'设置为true;
2、'sonar.forceAuthentication'设置为false,且'Anyone'用户组没有被授予该项目'User'角色
备注:
工程实例:
同样的为了帮助入门学习,gitthub提供了实例项目,可以供浏览和下载。
browsed or downloaded: projects/languages/java/maven/java-maven-simple
Maven插件版本
两个版本的Sonar maven插件存在,支持Maven2和Maven3。使用哪种取决于项目的Maven 版本。
Maven2 Only:
将以下配置加载pom.xml文件中
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>1.0</version>
</plugin>
<plugins>
</pluginManagement>
</build>
Maven 3 only:
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>2.0</version>
</plugin>
<plugins>
</pluginManagement>
</build>
Both Maven 2 and Maven 3
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>${sonarVersion}</version>
</plugin>
<plugins>
</pluginManagement>
</build>
<profile>
<id>maven-2</id>
<activation>
<file>
<!-- basedir expression is only recognized by Maven 3.x (see MNG-2363) -->
<missing>${basedir}</missing>
</file>
</activation>
<properties>
<sonarVersion>1.0</sonarVersion>
</properties>
</profile>
<profile>
<id>maven-3</id>
<activation>
<file>
<!-- basedir expression is only recognized by Maven 3.x (see MNG-2363) -->
<exists>${basedir}</exists>
</file>
</activation>
<properties>
<sonarVersion>2.0</sonarVersion>
</properties>
</profile>
分析多模块多语言项目
从Sonar3.3开始,支持分析多模块多语言项目。只需为每个模块pom.xml配置对应的'sonar.language'属性即可。
同样,为了帮助读者尽快上手,github上有实例可供浏览和下载。
browsed or downloaded: projects/languages/multi-language/multi-language-java-javascript-maven
文档下载:http://wenku.baidu.com/view/088e5b1b6edb6f1aff001fc0.html
相关推荐
maven集成sonar5.6.7进行代码扫描所用的pom文件 maven集成sonar5.6.7进行代码扫描所用的pom文件 maven集成sonar5.6.7进行代码扫描所用的pom文件
sonar与maven的集成使用说明
SonarQube为静态代码检查工具,帮助检查代码缺陷,改善代码质量,提高开发速度
SonarQube Maven 插件 带有补丁的 。 2.5-快照(sonar.skip、sonar.java.libraries、sonar.java.binaries) 复杂的 maven 项目解析(例如,模块目录中的几个 pom 文件) Scala 支持(包括 src/main/scala 作为源和 ...
Eclipse安装代码检测插件(SonarLint插件)安装使用说明,加强代码质量检测
sonar实战文档实战
maven+jenkins+sonar代码集成环境,自动检测搭建。
Sonar 是一个用于代码质量管理的开源平台,用于管理源代码的质量,通 过 Eclipse 插件形式,可以支持包括 java, C#, C/C++, PL/SQL, Cobol, JS, Groovy 等等二十几种编程语言的代码质量管理与检测。
deploy-sonar代码扫描分析
sonar(SonarQube)是一个开源代码质量管理平台。它通过插件的形式来管理代码,它支持的语言包括:Java,PHP,C#,C等。 7个原则: 1. 不遵循代码标准 sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具...
Sonar,Sonar+maven,Sonar+eclipse
deploy-sonar代码扫描分析工具
sonar的环境搭建 1 centos7上安装mysql5.7 1.下载YUM源 ...2.安装mysql源 3.检查mysql源是否安装成功 4 安装MySQL 5.启动Mysql服务 ...7.Sonar要求mysql必须是InnoDB存储...4.使用maven插件分析代码 方式1: 方式2(比较灵活):
支持三种模式: 模式描述集成(推荐) 与sonar-maven-plugin结合运行(支持分支和请求请求) 用于获取数据所需要的信息将从被读取声纳-Maven的插件中生成的文件target 简单的为一个简单的SonarQube项目独立运行(无...
sonar中文插件1.28,适用于最后一个jdk1.8版本的sonar,sonar-l10n-zh-plugin-1.28.jar
能看到代码覆盖率和测试统计数据,详细说明了整个安装和测试的过程。
scalate.zip,scalatelift与scalate的集成
sonar eclipse插件sonarlint,原先的插件已经被启用,这是最新的,如果连接本地sonar服务器,需要在eclipse.ini中配置启动参数,参数为org.sonarlint.eclipse.core/server_url 值为sonar服务器地址,如果不配置默认...
sonarLint 插件 供离线安装 ,用于检查代码 ,sonarLint 插件 ,用于检查代码 ,sonarLint 插件 ,用于检查代码 ,sonarLint 插件 ,用于检查代码
先决条件为了正确使用此插件,您的JAVA项目需要已经在Sonar中进行了配置,并使用org.sonarsource.scanner.maven:sonar-maven-plugin连接如何使用将以下插件添加到您的pom.xml中< plugin> < groupId>...