`
headsen
  • 浏览: 20775 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
社区版块
存档分类
最新评论

Sonar代码分析实战(7)——1.2.3 使用Maven插件

阅读更多

 

如果您的项目是基于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

 

分享到:
评论

相关推荐

    sonar与maven的集成使用说明

    2. **配置Sonar插件**: 在Maven配置文件中指定Sonar插件的具体配置项,比如分析的语言、项目名称等。 ```xml &lt;project.build.sourceEncoding&gt;UTF-8 &lt;sonar.projectName&gt;MyProject&lt;/sonar.projectName&gt; &lt;sonar...

    sonar+maven2+myeclipse代码质量监控

    ### 代码质量监控:sonar+maven2+myeclipse #### 一、Sonar环境搭建 为了确保软件项目的质量,SonarQube提供了一种全面的解决方案来管理代码的质量和复杂度。以下步骤详细介绍了如何搭建Sonar环境: 1. **安装JDK...

    sonar实战文档实战

    Sonar 通过插件机制,可以集成不同的测试工具、代码分析工具,以及持续集成工具,提供多维度的代码质量检测。 以下是 Sonar 的一些重要知识点: 1. 代码质量管理:Sonar 可以对代码质量进行检测和管理,发现代码...

    maven集成sonar5.6.7进行代码扫描所用的pom文件

    maven集成sonar5.6.7进行代码扫描所用的pom文件 maven集成sonar5.6.7进行代码扫描所用的pom文件 maven集成sonar5.6.7进行代码扫描所用的pom文件

    代码检测插件(SonarLint插件)安装使用说明.docx

    与SonarQube结合使用时,SonarLint可以从SonarQube服务器获取统一的代码规范,确保全公司的代码风格一致。 在Eclipse中安装SonarLint分为在线安装和离线安装两种方式: 1. **在线安装**: - 打开Eclipse,进入`...

    maven+jenkins+sonar集成搭建

    集成这些工具后,你可以创建一个Jenkins job,该job在代码提交时自动触发,先使用Maven构建项目,然后通过SonarScanner执行代码分析,并将结果上传到SonarQube。这样,每次代码更新都能及时得到质量检查报告,便于...

    Sonar代码质量分析插件

    5. **动态代码分析**:SonarLint是SonarQube的轻量级版本,可以作为IDE插件(如IntelliJ IDEA,这也是你在标签中提到的)使用,提供实时的代码问题提示,提高开发效率。 6. **多语言支持**:除了Python和Java,...

    sonar-maven-plugin:SonarQube Maven 插件 + 补丁

    SonarQube Maven 插件 带有补丁的 。 2.5-快照(sonar.skip、sonar.java.libraries、sonar.java.binaries) 复杂的 maven 项目解析(例如,模块目录中的几个 pom 文件) Scala 支持(包括 src/main/scala 作为源和 ...

    Sonar代码规范

    sonar(SonarQube)是一个开源代码质量管理平台。它通过插件的形式来管理代码,它支持的语言包括:Java,PHP,C#,C等。 7个原则: 1. 不遵循代码标准 sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具...

    sonar中文插件1.28

    "sonar中文插件1.28"是专门为SonarQube设计的一个本地化插件,目的是为了提供中文界面和支持,便于中国开发者更加便捷地使用SonarQube进行项目分析和质量管理。 这个插件的版本号是1.28,表明它是针对SonarQube某个...

    Maven与sonar的安装及配置文档

    4. **项目配置**: 在项目根目录创建`sonar-project.properties`文件,配置项目信息,包括项目键、名称、版本、源代码路径、二进制文件路径、语言、源代码编码和使用的分析配置。 5. **运行分析**: 在命令行中,导航...

    使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境

    4. 安装并配置Jenkins服务器,安装相关插件,配置Svn源码拉取、Maven构建和Sonar分析。 5. 配置Tomcat服务器,确保能够接收Jenkins的自动部署。 6. 在Jenkins中创建Job,设置构建触发器(如Svn钩子),配置构建步骤...

    sonar汉化包等插件

    3. **sonar-scm-git-plugin-1.2.jar**:对于使用Git进行版本控制的项目,这个插件提供了Git集成,同样能追踪代码变更,分析不同提交对代码质量的影响。 4. **sonar-java-plugin-3.13.1.jar**:这是SonarQube的Java...

    deploy-sonar代码扫描分析

    "deploy-sonar代码扫描分析"是一个针对软件代码质量进行深度检查的过程,它通常涉及到使用SonarQube这样的工具来执行静态代码分析和复杂度计算。SonarQube是一款开源平台,专门用于持续代码质量管理,它能检测出代码...

    sonar-maven-plugin-3.6.0.1398.jar

    java运行依赖jar包

    Sonar开源的Java源代码管理平台UT覆盖率.pdf

    1. Maven 项目:Sonar 可以与 Maven 集成,使用 mvn sonar:sonar 命令来分析项目。 2. 非 Maven 项目:Sonar 可以使用 pom.xml 文件来分析项目。 在使用 Sonar 分析项目时,需要按照以下步骤进行: 1. 为项目创建...

    IDEA sonarlint插件,版本 4.13.0.24781

    使用SonarLint插件时,应结合代码审查的最佳实践,如定期进行静态代码分析、持续集成等,以保证代码质量并促进团队间的编码一致性。 总的来说,SonarLint插件是IDEA中不可或缺的辅助工具,它提升了代码质量检查的...

    sonar的插件demo

    1. **设置开发环境**:确保你已经安装了Java Development Kit (JDK) 和Maven,因为SonarQube插件是用Java编写的,并且使用Maven作为构建工具。 2. **创建项目结构**:根据SonarQube插件的规范,创建基本的Maven项目...

    sonar-packaging-maven-plugin-1.10-RC1.zip

    标题中的"sonar-packaging-maven-plugin-1.10-RC1.zip"指的是一个Maven插件的压缩包,这个插件用于打包SonarQube项目。SonarQube是一个开源平台,专注于代码质量管理,它能进行源代码分析、漏洞检测、代码复杂度计算...

    sonar runner 进行代码质量监控

    等待一段时间后,Sonar会分析项目的代码质量,并将结果展示在Sonar Web界面上。 通过这种方式,Sonar不仅能够帮助开发者快速发现代码中的潜在问题,还能提高代码质量和维护性。同时,通过Sonar Runner自动化集成,...

Global site tag (gtag.js) - Google Analytics