Jenkins에서 정적 분석 및 테스트 결과 및 보고서를 생성하는 Maven 설정

6045 단어 JUnitJenkinsMaven

이게 뭐야?



Jenkins에 정적 해석, 테스트 결과를 정리해 리포트 받기 위한 Maven 설정을 적은 것.
※ Jenkins 자체의 설정은 할애합니다.

보고서 이미지



Jenkins의 화면에서 정적 해석의 결과, 테스트의 결과 등을 일망할 수 있는 것 같은 느낌



버전 정보


  • maven 3.3.3
  • jenkins 1.634
  • centos 6.5 (Open Logic 6.5)

  • jenkins에게 토해 드리고 싶은 보고서 내용


  • findbugs
  • checkstyle
  • jUnit 테스트 결과
  • 커버리지 측정
  • PMD (Java 소스 코드 분석을위한 정적 규칙 세트)
  • javadoc 생성

  • 필요한 Jenkins 플러그인



    ※ 표준으로 설치되어 있는 플러그인을 포함합니다
    ※ 의존관계로 인스톨 된 플러그인은 대상으로 하고 있지 않습니다.
  • Checkstyle Plug-in
  • Cobertura Plugin
  • Dependency Analyzer Plugin
  • Duplicate Code Scanner Plug-in
  • FindBugs Plug-in
  • Javadoc Plugin
  • JUnit Plugin
  • JUnit Attachments Plugin (테스트 결과에 근거를 붙이기 위해)
  • Maven Integration plugin
  • PMD Plug-in
  • Static Analysis Collector Plug-in
  • Static Analysis Utilities
  • Task Scanner Plug-in

  • pom.xml 내용



    ※시행착오의 결과, 움직인 결과를 나타냅니다.
    ※ maven의 각 플러그인의 버전은, 2015년 10월 22일 현재의 정보입니다.

    pom.xml
    
    <projcet>
     ...
        <reporting>
            <plugins>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>findbugs-maven-plugin</artifactId>
                    <version>3.0.3-SNAPSHOT</version>
                    <configuration>
                        <findbugsXmlOutput>true</findbugsXmlOutput>
                        <xmlOutput>true</xmlOutput>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <version>2.17</version>
                    <reportSets>
                        <reportSet>
                            <reports><report>checkstyle</report></reports>
                        </reportSet>
                    </reportSets>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jxr-plugin</artifactId>
                    <version>2.5</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>cobertura-maven-plugin</artifactId>
                    <version>2.7</version>
                    <configuration>
                        <formats><format>xml</format></formats>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>2.10.3</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-report-plugin</artifactId>
                    <version>2.19</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-pmd-plugin</artifactId>
                    <version>3.5</version>
                </plugin>
            </plugins>
        </reporting>
    
     ...
    </project>
    

    이용하는 Maven 목표


    mvn
    / compile
    / checkstyle:checkstyle
    / pmd:pmd
    / findbugs:findbugs
    / javadoc:aggregate
    / surefire-report:report
    / cobertura:cobertura -Dcobertura.report.format=xml
    

    좋은 웹페이지 즐겨찾기