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

Sonar代码分析实战(6)——1.2.2 Sonar Runner执行代码分析

阅读更多

 

使用Sonar做代码分析时,有很多种途径,但是推荐使用Sonar Runner。

本节描述基于Sonar Runner 2.0+

 

前提准备

你必须提前下载,并安装Sonar Runner。下载:

http://repository.codehaus.org/org/codehaus/sonar-plugins/sonar-runner/2.0/sonar-runner-2.0.zip<!--[if !supportNestedAnchors]--><!--[endif]-->

安装配置请参考前面章节中

 

简单工程

在项目根路径下,创建配置文件,文件名为sonar-project.properties。sonar-runner执行分析时,会读取该文件。

 

文件内容示意: sonar-project.properties

# required metadata

sonar.projectKey=my:project

sonar.projectName=My project

sonar.projectVersion=1.0

 

# path to source directories (required)

sonar.sources=srcDir1,srcDir2

 

# path to test source directories (optional)

sonar.tests=testDir1,testDir2

 

# path to project binaries (optional), for example directory of Java bytecode

sonar.binaries=binDir

 

# optional comma-separated list of paths to libraries. Only path to JAR file and path to directory of classes are supported.

sonar.libraries=path/to/library.jar,path/to/classes/dir

 

# The value of the property must be the key of the language.

sonar.language=cobol

 

# Additional parameters

sonar.my.property=value

配置好上述文件后,从命令行在根路径下执行下面命令启动项目的代码分析。

sonar-runner

为了帮助新手尽快入门,github存取服务上存放简单的示例代码,可供浏览下载

 

多模块工程

在Sonar分析时可以使用两种方式配置项目的结构。一种需要在项目下配置一个总文件,一种可以在每个模块下各自配置一个文件。

方式一:

将所有的配置放在一个sonar-project.properties文件,并放在项目的根路径下。

 

 

文件内容示意:

# Root project information

sonar.projectKey=org.mycompany.myproject

sonar.projectName=My Project

sonar.projectVersion=1.0-SNAPSHOT

 

# Some properties that will be inherited by the modules

sonar.sources=src

 

# List of the module identifiers

sonar.modules=module1,module2

 

# Properties can obviously be overriden for

# each module - just prefix them with the module ID

module1.sonar.projectName=Module 1

module2.sonar.projectName=Module 2

 

方式二:

每个模块下的配置放在各自的独立文件中。

 

配置示意:

总配置的内容 "MyProject/sonar-project.properties"  

# Root project information

sonar.projectKey=org.mycompany.myproject

sonar.projectName=My Project

sonar.projectVersion=1.0-SNAPSHOT

 

# Some properties that will be inherited by the modules

sonar.sources=src

 

# List of the module identifiers

sonar.modules=module1,module2

 

 

子配置一 "MyProject/module1/sonar-project.properties"

# Redefine properties

# Note that you do not need to prefix the property here

sonar.projectName=Module 1

 

 

子配置二 "MyProject/module2/sonar-project.properties"

# Redefine properties

# Note that you do not need to prefix the property here

sonar.projectName=Module 2

 

值得注意:

1、子配置继承于父配置,子配置将可以覆盖父配置,通过两种方法:

在父配置中配置属性前增加模块标识前缀。

在子配置中直接定义配置。

2、特殊情况可以指定根目录

默认情况下,模块的根目录默认为模块的标识符(如上面的示例)。特殊情况下,可以在配置文件中使用“sonar.projectBaseDir”属性来指定根目录。如:

module1.sonar.projectBaseDir=My Module One  #含空格

 

module1.sonar.projectBaseDir=modules/mod1  #多层级

module2.sonar.projectBaseDir=modules/mod2

 

3、多模块项目使用Sonar做分析时不能只指定一个源代码目录。 

为了帮助尽快入门,这里依然有部分示意代码。你可以浏览下载

4、相同结构的多模块projects/languages/java/sonar-runner/java-sonar-runner-modules-same-structure

5、不同结构的多模块projects/languages/java/sonar-runner/java-sonar-runner-modules-different-structures

6、模块独自配置projects/languages/java/sonar-runner/java-sonar-runner-modules-own-configuration-file

 

      多模块多语言功能

从Sonar3.3开始,Sonar支持多语言多模块工程的代码分析。

而配置也极其简单,只需在多模块工程的基础上增加一个语言属性的配置,如:

module.sonar.language

module1.sonar.language=java

module2.sonar.language=javascript

 

为了帮助尽快入门,这里依然有部分示意代码。你可以浏览下载。项目路径: 

projects/languages/multi-language/multi-language-java-javascript-sonar-runner

高级用法

如果不在项目的工程的根路径创建sonar-project.properties文件,还可以进行其他选择。

 

1、通过command命令行直接指定:

sonar-runner -Dsonar.projectKey=myproject -Dsonar.sources=src1 ..

2、通过command命令行指定配置文件路径: 'project.settings'

sonar-runner -Dproject.settings=../myproject.properties

 

通过设置'sonar.working.directory'属性可以设置Sonar的工作目录,默认为'.sonar'

通过设置'project.home'属性可以指定项目的根路径。根路径下必须包含sonar-project.properties配置文件(除非执行指令时显示给定路径。)

命令行执行分析时,可以追加参数。参数。

 

疑难解答

对于较大的工程项目,经常出现内存不够的问题,需要设置虚拟机的内存。

export SONAR_RUNNER_OPTS="-Xmx512m -XX:MaxPermSize=128m"

在Window环境下:

set SONAR_RUNNER_OPTS=-Xmx512m -XX:MaxPermSize=128m

 

从Sonar Runner 1.X向2.0迁移

只需将以下属性名替换为新属性名即可:

sources => sonar.sources

tests => sonar.tests

binaries => sonar.binaries

libraries => sonar.libraries

在sonar-project.properties文件明确设置sonar.sourceEncoding属性。

 

 

文档下载:http://wenku.baidu.com/view/088e5b1b6edb6f1aff001fc0.html

 

分享到:
评论

相关推荐

    sonar runner 进行代码质量监控

    这个文件包含了Sonar Runner进行代码分析所需的关键信息: 1. **指定项目元数据**:例如 `sonar.projectKey`、`sonar.projectName` 和 `sonar.projectVersion`。 2. **定义源文件路径**:使用 `sources` 指定源...

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

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

    sonar-runner-2.4

    SonarRunner(现称为SonarScanner)是SonarQube的一个关键组件,用于执行实际的代码分析任务。在本案例中,我们关注的是SonarRunner的2.4版本。 SonarRunner 2.4是SonarQube早期版本中的执行器,它的主要职责是连接...

    sonar-runner-2.4.zip

    SonarRunner是SonarQube生态系统中的一个关键组件,它主要负责执行静态代码分析和质量检查,以便在项目开发过程中持续集成和改进代码质量。SonarQube是一款强大的开源平台,用于管理源代码的复杂性、缺陷、重复代码...

    sonar-runner-dist-2.4

    虽然SonarQube本身可以与其他构建工具如Maven集成,但Sonar Runner作为一个独立的执行器,提供了一种更灵活、独立于构建工具的方式来进行代码分析。Maven插件虽然也是常见的选择,但不是所有项目都采用Maven作为构建...

    Sonar代码规范

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

    sonar实战文档实战

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

    sonarrunner 2.x 全版本

    SonarQube是一款强大的开源平台,用于静态代码分析和持续代码质量管理。它提供了多种编程语言的支持,包括Java、C#、Python等,能够检测代码中的潜在缺陷、漏洞、重复代码、代码风格问题,并提供改进的建议。通过...

    deploy-sonar代码扫描分析

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

    sonar-runner-1.0下载

    SonarQube是一个开源平台,主要用于静态代码分析和度量软件项目的健康状况。它提供了一种全面的方式来评估代码质量、检测潜在的缺陷、管理技术债务,并确保遵循编码标准。SonarRunner作为SonarQube生态系统的一部分...

    【中文版】sonar实战

    Sonar由数据库、Web服务器和客户端三部分组成,其中数据库用于存储配置信息和分析结果,Web服务器负责在线浏览和配置分析,客户端则用于执行源代码分析。 #### 小结 Sonar是一个全面的代码质量管理解决方案,适用...

    安装包(内含jenkins.war+sonar7.1+sonar-runner2.4).rar

    SonarQube的SonarScanner(以前称为Sonar Runner)是用于执行分析的客户端工具,它可以与Jenkins集成,实现构建后的自动化代码审查。 接下来,我们将详细讲解如何部署和配置这个环境: 1. 部署Jenkins: - 首先,...

    Sonar代码质量分析插件

    SonarQube是一款强大的代码质量管理平台,主要用于执行静态代码分析,以发现并度量源代码中的潜在缺陷、漏洞和重复代码。它支持多种编程语言,包括Python和Java,这些都是你在标签中提到的关键技术领域。SonarQube...

    sonar+Jenkins 构建代码质量自动化分析平台.doc

    SonarQube Scanner是用于执行代码分析的客户端工具,需要在开发者机器或构建服务器上安装。安装Scanner后,可以在Jenkins中配置构建步骤,调用Scanner执行代码质量分析。这通常包括以下步骤: 1. 在Jenkins的Job配置...

    sonar-Kotlin检查规则指南.docx

    Sonar-Kotlin 是一个功能强大的代码分析工具,它可以帮助开发者编写高质量的代码,并减少代码中的缺陷和问题。 知识点: 1. Sonar-Kotlin 是 SonarQube 的一个插件,用于分析 Kotlin 语言项目。 2. Sonar-Kotlin ...

    jenkins持续集成sonar扫描代码

    4. **SonarQube Scanner**:执行代码分析的客户端工具,可以在构建过程中调用。 #### 三、SonarQube 在 Linux 上的安装步骤 1. **环境准备**: - **JDK**:确保安装 JDK 1.7 或更高版本,并正确配置环境变量。 -...

    sonar-runner

    `SonarQube Runner`,又称为`SonarQube Scanner`,是SonarQube平台的一个重要组件,用于执行静态代码分析和度量项目质量。它以前被称为`Sonar Runner`,在版本升级中改名为`Scanner for SonarQube`。这个工具的主要...

    deploy-sonar代码扫描分析工具

    1. **静态代码分析**:SonarQube可以对多种编程语言(如Java、C#、Python等)进行静态代码分析,找出潜在的错误、漏洞和坏味道。 2. **质量门限**:设置质量门限,当新代码或现有代码的健康状况低于预设标准时,...

Global site tag (gtag.js) - Google Analytics