Versions Compared

Key

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


By SonarSource – MIT – Issue Tracker  Sources

SonarQube Scanner for MSBuild 4.0.0.821
Compatible with SonarQube 6.7+ (LTS) 

Download


Panel
borderColor#C3CCD7
bgColor#FCFCFC

Table of Contents

Table of Contents
maxLevel3
indent16px


기능

SonarQube Scanner for MSBuild는 SonarSource와 Microsoft 가 협업을 통해 개발 및 제공하며, MSBuild 프로젝트 및 솔루션을 SonarQube로 분석하기 위해 권장합니다.

커맨드라인 명령어를 통해 사용 가능하며, VSTS-TFS 및 Jenkins의 빌드 스텝으로 활용할 수 있습니다.

설치

  1. .NET Framewaor Framework v4.6+ 를 설치합니다.
  2. Java Runtime Environment 8을 설치합니다.
  3. 최신 버전의 SonarQube Scanner for MSBuild 를 다운로드 합니다(이 페이지 상단의 링크를 참조하십시오).
  4. zip 파일의 블럭을 해제합니다(마우스 우 클릭 file > Properties > Unblock).
  5. sonar-scanner-msbuild-[version].zip 파일의 압축을 풉니다. (예: C:\SonarQube\bin)
  6. C:\SonarQube\bin\SonarQube.Analysis.xml  파일의 다음 파라미터를 입력합니다:
    1. sonar.host.url - 사용할 SonarQube 서버의 URL

    2. sonar.login - Execute Analysis 권한을 가진 사용자의 Analysis 사용자 토큰 값을 입력합니다. Anonymous 계정이 해당 권한을 가지고 있지 않은 경우 이 값을 입력해야 합니다
  7. SonarQube.Analysis.xml 파일에 대한 접근권한을 적절하게 설정해, 불필요한 수정을 방지합니다.
  8. %PATH% 환경 변수에 실행 파일이 위치한 디렉토리를 추가합니다.

사용

  1. 분석하고자 하는 프로젝트의 루트 폴더에서 다음 명령어를 실행합니다:

    Code Block
    SonarQube.Scanner.MSBuild.exe begin /k:"org.sonarqube:sonarqube-scanner-msbuild" /n:"Project Name" /v:"1.0"
    MSBuild.exe /t:Rebuild
    SonarQube.Scanner.MSBuild.exe end

    분석을 위해 추가 파라미터를 설정해야할 경우 추가 파라미터 페이지를 참조하십시오.
    커맨드 라인에서 분석 인증 정보(사용자 토큰)를 전달해야 하는 경우, /d: 옵션을 사용하십시오(예: /d:sonar.login=[my token value)

  2. 분석 종료 후 터미널에 표시되는 SonarQube UI Url을 브라우저에 입력하여 결과 페이지로 합니다.

기타

MSBuild 용 스캐너를 MSBuild 파이프라인의 일부로 구성할 수 있습니다. 이 경우 다음의 속성들이 변경됩니다:

  • 프로젝트의 기존 코드 분석기들을 모두 제거하여, 이슈를 중복 식별하는 것을 방지합니다.
  • SonarC# 및 SonarVB 분석기가 추가되며, CodeAnalysisRuleSet이 SonarQube의 quality profile에 맞추어 업데이트 됩니다.
  • SonarQube에 분석 보고서가 전송되기 전에 빌드가 깨지지 않도록 WarningAsError 기능이 비활성화 됩니다.

If your build process cannot tolerate these changes, we recommend creating a second job for SonarQube analysis.

Also,

  • Project build is required between the begin and end commands. /t:Rebuild is used above as an example.
  • Sensitive properties such as

    위의 변경 사항으로 인해 기존 빌드 프로세스에 악영향을 미치는 경우, SonarQube 분석을 위한 별도의 job을 생성할 것을 권장합니다. 또한,

    • 프로젝트 빌드는 begin / end 커맨드 사이에서 수행해야 합니다. 위 예제에서는 /t:Rebuild 를 수행했습니다.
    • "sonar.login"
    and
    • 혹은 "sonar.password"
     are not persisted on disk for security reasons. If you wish to pass them as command line arguments, you will have to so for both the "begin" and "end" steps.If you are not already using
    • 와 같은 민감한 속성은 보안상의 의유로 디스크에 보관하지 않습니다. 커맨드 라인 인자로 해당 속성을 전달하고자 하는 경우에도 해당 과정은 begin / end 사이에서 수행해야 합니다.
    • MSBuild 14.0+
    , please refer to the Compatibility with Visual Studio and MSBuild notes.

    Project Samples

    To help you get started, simple project samples are available for most languages on github. They can be browsed or downloaded. You'll find them filed under projects/languages.

     

    Known Limitations

    • Analysis of Web Site Solutions is not supported, however analysis of Web Application Solutions is supported.

    Troubleshooting

    샘플 프로젝트

    github에서 대부분의 지원 언어를 포함하는 간단한 샘플 프로젝트를 제공하며, 리포지토리를 탐색하거나 샘플 프로젝트를 다운로드할 수 있습니다. projects/languages 디렉토리의 샘플 프로젝트를 확인하십시오.

    알려진 제약 사항

    Web Application 솔루션에 대한 분석은 지원하나, Web Site 솔루션에 대한 분석은 지원하지 않습니다.

    트러블 슈팅

    The End Step executable was not found

    If you need to run multiple analyses in rapid succession, pass 

    여러 분석을 빠르게 연속적으로 수행하고자 하는 경우에는 /nodereuse:false

     to 

    인자를 msbuild

    .Otherwise you may see the following error when the DLLs required by a new analysis are still locked by a previous analysis:The End Step executable was not found 

    명령어로 전달하십시오. 그렇지 않은 경우,  새로운 분석 과정에서 요구하는 DLL이 이전 분석에 의해 점유되어 있는 경우 다음 오류를 만날 수 있습니다:

    Code Block
    The End Step executable was not found 'D:\***\.sonarqube\bin\MSBuild.SonarQube.Internal.PostProcess.exe'. Please check that the begin step, the build step and the end step are all executed in the same directory.


    End of Central Directory record could not be found

    This error is caused by an out-of-date build task. Download and install the latest version.

    Going Further  

    오래된 빌드 태스크로 인해 위 오류가 발생합니다. 최신 버전을 다운로드하여 설치하십시오.

    더 보기

    Child pages (Children Display)