如果您的项目是基于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
相关推荐
2. **配置Sonar插件**: 在Maven配置文件中指定Sonar插件的具体配置项,比如分析的语言、项目名称等。 ```xml <project.build.sourceEncoding>UTF-8 <sonar.projectName>MyProject</sonar.projectName> <sonar...
### 代码质量监控:sonar+maven2+myeclipse #### 一、Sonar环境搭建 为了确保软件项目的质量,SonarQube提供了一种全面的解决方案来管理代码的质量和复杂度。以下步骤详细介绍了如何搭建Sonar环境: 1. **安装JDK...
Sonar 通过插件机制,可以集成不同的测试工具、代码分析工具,以及持续集成工具,提供多维度的代码质量检测。 以下是 Sonar 的一些重要知识点: 1. 代码质量管理:Sonar 可以对代码质量进行检测和管理,发现代码...
maven集成sonar5.6.7进行代码扫描所用的pom文件 maven集成sonar5.6.7进行代码扫描所用的pom文件 maven集成sonar5.6.7进行代码扫描所用的pom文件
与SonarQube结合使用时,SonarLint可以从SonarQube服务器获取统一的代码规范,确保全公司的代码风格一致。 在Eclipse中安装SonarLint分为在线安装和离线安装两种方式: 1. **在线安装**: - 打开Eclipse,进入`...
集成这些工具后,你可以创建一个Jenkins job,该job在代码提交时自动触发,先使用Maven构建项目,然后通过SonarScanner执行代码分析,并将结果上传到SonarQube。这样,每次代码更新都能及时得到质量检查报告,便于...
5. **动态代码分析**:SonarLint是SonarQube的轻量级版本,可以作为IDE插件(如IntelliJ IDEA,这也是你在标签中提到的)使用,提供实时的代码问题提示,提高开发效率。 6. **多语言支持**:除了Python和Java,...
SonarQube Maven 插件 带有补丁的 。 2.5-快照(sonar.skip、sonar.java.libraries、sonar.java.binaries) 复杂的 maven 项目解析(例如,模块目录中的几个 pom 文件) Scala 支持(包括 src/main/scala 作为源和 ...
sonar(SonarQube)是一个开源代码质量管理平台。它通过插件的形式来管理代码,它支持的语言包括:Java,PHP,C#,C等。 7个原则: 1. 不遵循代码标准 sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具...
"sonar中文插件1.28"是专门为SonarQube设计的一个本地化插件,目的是为了提供中文界面和支持,便于中国开发者更加便捷地使用SonarQube进行项目分析和质量管理。 这个插件的版本号是1.28,表明它是针对SonarQube某个...
4. **项目配置**: 在项目根目录创建`sonar-project.properties`文件,配置项目信息,包括项目键、名称、版本、源代码路径、二进制文件路径、语言、源代码编码和使用的分析配置。 5. **运行分析**: 在命令行中,导航...
4. 安装并配置Jenkins服务器,安装相关插件,配置Svn源码拉取、Maven构建和Sonar分析。 5. 配置Tomcat服务器,确保能够接收Jenkins的自动部署。 6. 在Jenkins中创建Job,设置构建触发器(如Svn钩子),配置构建步骤...
3. **sonar-scm-git-plugin-1.2.jar**:对于使用Git进行版本控制的项目,这个插件提供了Git集成,同样能追踪代码变更,分析不同提交对代码质量的影响。 4. **sonar-java-plugin-3.13.1.jar**:这是SonarQube的Java...
"deploy-sonar代码扫描分析"是一个针对软件代码质量进行深度检查的过程,它通常涉及到使用SonarQube这样的工具来执行静态代码分析和复杂度计算。SonarQube是一款开源平台,专门用于持续代码质量管理,它能检测出代码...
java运行依赖jar包
1. Maven 项目:Sonar 可以与 Maven 集成,使用 mvn sonar:sonar 命令来分析项目。 2. 非 Maven 项目:Sonar 可以使用 pom.xml 文件来分析项目。 在使用 Sonar 分析项目时,需要按照以下步骤进行: 1. 为项目创建...
使用SonarLint插件时,应结合代码审查的最佳实践,如定期进行静态代码分析、持续集成等,以保证代码质量并促进团队间的编码一致性。 总的来说,SonarLint插件是IDEA中不可或缺的辅助工具,它提升了代码质量检查的...
1. **设置开发环境**:确保你已经安装了Java Development Kit (JDK) 和Maven,因为SonarQube插件是用Java编写的,并且使用Maven作为构建工具。 2. **创建项目结构**:根据SonarQube插件的规范,创建基本的Maven项目...
标题中的"sonar-packaging-maven-plugin-1.10-RC1.zip"指的是一个Maven插件的压缩包,这个插件用于打包SonarQube项目。SonarQube是一个开源平台,专注于代码质量管理,它能进行源代码分析、漏洞检测、代码复杂度计算...
等待一段时间后,Sonar会分析项目的代码质量,并将结果展示在Sonar Web界面上。 通过这种方式,Sonar不仅能够帮助开发者快速发现代码中的潜在问题,还能提高代码质量和维护性。同时,通过Sonar Runner自动化集成,...