Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


By SonarSource – GNU LGPL 3 – Issue Tracker  Sources

SonarQube Scanner for Maven 3.4.0.905


Panel
borderColor#C3CCD7
bgColor#FCFCFC

Table of Contents

Table of Contents
maxLevel3
indent16px



Features

This analyzer is recommended to launch analysis on Java Maven project.

Compatibility

기능

이 분석기는 Java Maven 프로젝트를 분석하는 경우 권장합니다.

호환성


Maven Version

2.x
3.x
Compatibility(error)(tick)

 

From


maven-sonar-plugin 3.4.0.905

,

부터 SonarQube

< 5

v5.6

is no longer supported.If using SonarQube instance prior to 5.6, you should use

이전의 버전을 지원하지 않습니다.

Sonarqube v5.6 이전의 버전을 사용하는 경우, maven-sonar-plugin 3.3.0.

603

603를 사용하십시오.

From

maven-sonar-plugin 3.1

,

부터 Maven

< 3

v3.0

is no longer supported

이전의 버전을 지원하지 않습니다.

If using

Maven

prior to 3

v3.0 이전의 버전을 사용하는 경우,

you should use

maven-sonar-plugin 3.0.

2

2를 사용하십시오.

Prerequisites

사전 조건

  • Maven 3.x를 설치합니다.
x
  • SonarQube
is already installed
  • At least the minimal version of Java supported by your SonarQube server is in use (Java 8 for latest LTS)
  • The language plugins for each of the languages you wish to analyze are installed
  • You have read Analyzing Code Source
  • Initial Setup

    Global Settings

    Edit the settings.xml file, located in 
    • 서버를 설치합니다.
    • 사용하는 SonarQube 서버를 지원하는 최소한의 Java 버전(최신 LTS 버전의 경우, Java 8 필수)을 설치합니다.
    • 분석 대상 언어 분석 플러그인을 설치합니다.
    • 소스 코드 분석하기를 숙지합니다

    초기 셋업

    글로벌 설정

    Maven의 settings.xml 파일($MAVEN_HOME/conf 

    or

    혹은 ~/.m2

    , to set the plugin prefix and optionally the SonarQube server URL.

    Example:

    <settings>
        <pluginGroups>
            <pluginGroup>org

    디렉토리에 위치)에 플러그인 prefix와 SonarQube Server URL을 설정합니다.

    예:

    Code Block
    <settings>
        <pluginGroups>
            <pluginGroup>org.sonarsource.scanner.maven</
    pluginGroup>
        </pluginGroups>
        <profiles>
            <profile>
                <id>sonar</id>
                <activation>
                    <activeByDefault>true</activeByDefault>
                </activation>
                <properties>
                    <!-- Optional URL to server. Default value is http
    pluginGroup>
        </pluginGroups>
        <profiles>
            <profile>
                <id>sonar</id>
                <activation>
                    <activeByDefault>true</activeByDefault>
                </activation>
                <properties>
                    <!-- Optional URL to server. Default value is http://localhost:
    9000 
    9000 -->
                    <sonar
    
                    <sonar.host.
    url>                  http
    url>
                      http://myserver:9000
                    <
    
                    </sonar.host.
    url>
                </properties>
            </profile>
         </profiles>
    </settings>

    Analyzing a Maven Project

    Analyzing a Maven project consists of running a Maven goal: sonar:sonar in the directory where the pom.xml file sits.

    mvn clean verify sonar:sonar
      
    # In some situation you may want to run sonar:sonar goal as a dedicated step. Be sure to use install as first step for multi-module projects
    mvn clean install
    mvn sonar:sonar
     
    # Specify the version of sonar-maven-plugin instead of using the latest. See also 'How to Fix Version of Maven Plugin' below.
    mvn
    url>
                </properties>
            </profile>
         </profiles>
    </settings>

    Maven 프로젝트 분석하기

    Maven 프로젝트를 분석하려면, pom.xml 파일이 있는 위치에서 sonar:sonar maven goal을 실행합니다:

    Code Block
    $ mvn clean verify sonar:sonar
      
    # In some situation you may want to run sonar:sonar goal as a dedicated step. Be sure to use install as first step for multi-module projects
    $ mvn clean install
    $ mvn sonar:sonar
     
    # Specify the version of sonar-maven-plugin instead of using the latest. See also 'How to Fix Version of Maven Plugin' below.
    $ mvn org.sonarsource.scanner.maven:sonar-maven-plugin:3.4.0.905:sonar
    To get coverage information, you'll need to generate the coverage report before the analysis. See 

    테스트 커버리지 정보를 얻기 위해서는 분석 전 커버리지 보고서를 생성해야 합니다. 자세한 정보는 Code Coverage by Unit Tests for Java Project

     and for more information

    를 참조하십시오.

    Configuring the

    SonarQube

    Analysis

    Analysis parameters are listed on the Analysis Parameters page. You have to configure them in the <properties> section of your pom.xml like this:

    <properties>
      <sonar.exclusions>

    분석 설정하기

    분석 파라미터를 참조해, 필요한 파라미터들을 설저합니다. pom.xml 파일의 <properties> 섹션에 다음과 같이 설정합니다:

    Code Block
    <properties>
      <sonar.exclusions> [...] </sonar.exclusions>
    
    </properties>

     

    Security

    Any user who's granted Execute Analysis permission can run an analysis.

    If the Anyone group is not granted Execute Analysis permission or if the SonarQube instance is secured (the sonar.forceAuthentication property is set to true), the analysis token of a user with Execute Analysis permission must be provided through the sonar.login property. Example


    보안

    Execute Analysis 권한을 가진 사용자는 분석을 수행할 수 있습니다.

    Anyone 그룹이 Execute Analysis 권한을 가지고 있지 않거나, SonarQube 인스턴스에 보안 설정을 한 경우(sonar.forceAuthentication 속성을 true로 설정), sonar.login 속성값으로 Execute Analysis 권한을 가진 사용자의 분석 토큰값을 입력해야 합니다.

    sonar-scanner -Dsonar.login=[my analysis token]

    Excluding a module from SonarQube analysis

    You can either:

    define property


    SonarQube 분석에서 모듈 제외하기

    다음 방법 중 하나를 선택해하여 분석에서 모듈을 제외할 수 있습니다:

    • 분석에서 제외하고자 하는 모듈의 pom.xml에서 <sonar.skip>true</sonar.

    skip> in the pom.xml of the module you want to exclude
  • use build profiles to exclude some module (like for integration tests)
  • use 
    • skip> 속성을 설정합니다.

    • 빌드 속성을 설정해 특정한 모듈을 제외합니다(integration tests 등)
    • Advanced Reactor Options (
    such as
    • "-pl"
    ). For example
    • 등)을 사용합니다(예: mvn sonar:sonar -pl !module2)

    Sample Project

    To help you get started, a simple project sample is available here

    샘플 프로젝트

    다음 링크에서 간단한 샘플 프로젝트를 다운로드 할 수 있습니다https://github.com/SonarSource/sonar-scanning-examples/tree/master/sonarqube-scanner-maven

    How to Fix Version of Maven Plugin

    It is recommended to lock down versions of Maven plugins

    메이븐 플러그인 버전 고정하기

    메이븐 플러그인을 고정할 것을 권장합니다:

    Project analyzed with Maven 3

    Code Block
    <build>
      <pluginManagement>
        <plugins>
          <plugin>
            <groupId>org.sonarsource.scanner.maven</groupId>
            <artifactId>sonar-maven-plugin</artifactId>
            <version>3.4.0.905</version>
          </plugin>
        </plugins>
      </pluginManagement>
    </build>

    Troubleshooting

    If you get an

    트러블 슈팅

    java.lang.

    OutOfMemoryError, you can set the

    OutOfMemoryError가 발생하는 경우, MAVEN_OPTS

    environment variable, like this in *nix environments:

    환경 변수를 아래와 같이 수정합니다:

    • *nix 계열 운영체제인 경우: export MAVEN_OPTS="-Xmx512m"

    On Windows environments, avoid the double-quotes, since they get misinterpreted.

    • Windows 운영체제인 경우: set MAVEN_OPTS=-Xmx512m