내가 클로버와 수중 음파 탐지기 목표를 가진 ANT 빌드를 가지고, 샘플 명령은 ANT 클로버와 수중 음파 탐지기
ant clover.all sonar_all
은 현재 내가 클로버 계측 내 소스 디렉토리를 설정합니다
<clover-setup initstring="${clover.db.file}">
<fileset dir="${src.dir}">
...
대상을 사용합니다. 내 테스트가 실행되고 예상대로 클로버 보고서가 표시됩니다. 내 수중 음파 탐지기 대상
<target name="sonar_all">
<pathconvert pathsep="," property="echo.path.compile" refid="core.class.path"/>
<property name="sonar.libraries" value="${echo.path.compile}"/>
<property name="sonar.sources" value="${src.dir}"/>
<property name="sonar.projectName" value="Touchpoint"/>
<property name="sonar.binaries" value="${build.classes.dir}"/>
<property name="sonar.tests" value=""/>
<property name="sonar.host.url" value="${sonar.host.url}"/>
<property name="sonar.jdbc.url" value="${sonar.jdbc.url}"/>
<property name="sonar.jdbc.driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="sonar.jdbc.username" value="${sonar.jdbc.username}"/>
<property name="sonar.jdbc.password" value="${sonar.jdbc.password}"/>
<property name="sonar.exclusions" value=""/>
<property name="sonar.dynamicAnalysis" value="reuseReports"/>
<property name="sonar.surefire.reportsPath" value="${build.dir}/utest"/>
<property name="sonar.clover.reportPath" value="${build.dir}/clover/report/clover.xml"/>
<property name="sonar.java.source" value="1.6"/>
<property name="sonar.java.target" value="1.6"/>
<sonar:sonar key="xx" version="xx" xmlns:sonar="antlib:org.sonar.ant"/>
</target>
는 제대로 작동하지만 클로버 코드는 클로버 계측 코드가 findbugs에 여러 개의 위반이 발생하기 때문에 이것은 findbugs 보고서에 문제가 발생, 원래의 소스 코드를 오히려 처리되고 계측 것으로 보인다. 내 수중 음파 탐지기 측정 기준이 벽에서 떨어졌습니다. 현재 해결 방법으로는 두 개의 CI 빌드가 있는데 하나는 클로버 용이고 다른 하나는 수중 음파 탐지기 용입니다.하지만 코드 커버리지 메트릭과 음파 탐지기 세부 정보는 절대로받을 수 없습니다.
인스트루먼트 된 코드가 다른 디렉토리에 있는지 확인하기 위해 clover-instr 대상을 사용하려고했지만 컴파일 된 코드가 여전히 하나의 클래스 디렉토리에 생성되므로 동일한 문제가 발생합니다. 다른 개발자가이 문제를 해결하는 데 사용한 전략에 궁금합니다.
가장 낮은 레벨에서 클로버 컴파일러를 사용해야하는 ant 컴파일 대상을 나타 내기 위해 clover.all 타겟에서 설정하는 속성 (예 : -Dclover.useCompile = true | false)이 있습니까? 나는 기본 클로버를 실행하는 것을 좋아한다. 모든 타겟, 그 다음에 소나 타겟은 인스트루먼트 된 소스 및 클래스 파일을 삭제하고 클로버 옵션없이 다시 생성하고 기본 소나 타겟을 실행한다.
ant clover.all clover_off sonar_all
편집 1 : 만약 ANT 스크립트에서 두 번 컴파일 제안 Clover, Ant and Findbugs에이 항목을 발견했다. 개미 빌드는 일단 속성을로드 할 것이므로 컴파일 작업이 두 번, 클로버가 활성화되어 있고 두 번째로는 두 번 실행되도록 프로퍼티 중간 빌드를 어떻게 swtich 할 수 있는지 알 수 없습니다.