2017-12-06 34 views
1

나는 Sonarqube 코드 범위 검사를 사용하려고합니다. Eclipse에서 Maven 프로젝트를 작업하고 이미 Sonar-scan을 포함하여 성공적인 Jenkins 빌드를 설정했습니다.Jenkins에서 SonarQube 및 Maven으로 Jacoco를 구성하는 방법

나는 Jacoco를 로컬에서 사용하는 데 이미 성공했습니다. Jacoco 플러그인을 pom.xml에 추가하고 jacoco:prepare-agent test jacoco:report을 통해 Run As-> Maven build...을 실행했습니다. 전화가 오면 html 보고서는 target\site\jacoco에 있으며 올바른 것으로 보입니다.

젠킨스에서 작동하게해야하지만 빌드를 올바르게 구성하는 방법을 모르겠습니다. 현재 메이븐 목표 clean package -fae 및 빌드 단계 Invoke Standalone Sonar Analysis이 실행됩니다. sonar.jacoco.reportPath 필요가 설정되어 있음을 알았지 만 설정해야 할 곳이나 jacoco:report 대상을 알 수 없습니다. 또한 jenkins 플러그인에 jacoco 플러그인을 추가해야하는지, 또는 maven 프로젝트에서 그렇게하는 것이 충분한 지 여부는 확실하지 않습니다.

도움이 필요하시면 제 질문을 개선하기 위해 할 수있는 일이 있으면 알려 주시기 바랍니다.

답변

1

드디어 작동하게 설명이 링크 Foolow

. 다른 사람이 비슷한 문제가있는 경우 여기에 내 솔루션 게시 :

Jenkins의 경우 sonar.junit.reportsPath 및 sonar.jacoco.reportPath 속성을 구성해야합니다. 젠킨스에서 추가 목표를 실행해서는 안됩니다. 프로젝트에서

하나가

<properties> 
     <jacoco-maven-plugin.version>0.7.4.201502262128</jacoco-maven-plugin.version> 
    </properties> 

<build> 
    <pluginManagement> 
     <plugins> 
      <plugin> 
       <groupId>org.eclipse.m2e</groupId> 
       <artifactId>lifecycle-mapping</artifactId> 
       <version>1.0.0</version> 
       <configuration> 
        <lifecycleMappingMetadata> 
         <pluginExecutions> 
          <pluginExecution> 
           <pluginExecutionFilter> 
            <groupId>org.jacoco</groupId> 
            <artifactId>jacoco-maven-plugin</artifactId> 
            <versionRange>(,0.7.4.201502262128]</versionRange> 
            <goals> 
             <goal>prepare-agent</goal> 
            </goals> 
           </pluginExecutionFilter> 
           <action> 
            <ignore></ignore> 
           </action> 
          </pluginExecution> 
         </pluginExecutions> 
        </lifecycleMappingMetadata> 
       </configuration> 
      </plugin> 
     </plugins> 
    </pluginManagement> 
    <plugins> 
     <plugin> 
      <groupId>org.jacoco</groupId> 
      <artifactId>jacoco-maven-plugin</artifactId> 
      <version>${jacoco-maven-plugin.version}</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>prepare-agent</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 
목표 prepare-agent 실행해야합니다

을 지정할 필요가 pom.xml 파일 만 먼저 라이프 사이클에 포함되지 않은

자원 경로 위치를 입력 플러그인 실행을 생성 구성

해결하려면 upcom을 무시하므로 pluginManagement 블록이 필요합니다. 문제. 여기에 versionRange을 사용하는 것이 분명하며 version이 아니라이 특정 버전이 필요합니다. 이후 버전이 여기서 작동하지 않습니다.

0

예 설치하고 젠킨스에 jacoco 플러그인을 구성해야합니다. 이

https://dzone.com/articles/jacoco-jenkins-plugin

+0

감사합니다. 그러나 Jenkins를 구성 할 수 없습니다. 하지만 그 중 하나는 플러그인을 설치할 필요가 없다는 것을 알게되었습니다. Maven을 통해 구성 할 수 있습니다. – LMN

+0

보고 및 상태 플러그인을 설치하고 구성하려면 원하는 경우 결과를 한 번 확인하십시오. –

+0

Jenkins 구성에 필요한 권한 – LMN