문서의 이전 판입니다!
sonarRunner 태스크를 실행하면 곧바로 ${buildDir}/sonar 디렉토리를 삭제한 뒤 새로 생성한다. 따라서 이 이전 태스크(특히 test)에서 ${buildDir}/sonar 디렉토리 아래에 jacoco.exec 처럼 분석용 파일을 생성하게 하면 해당 파일이 삭제돼 버려 아무런 분석도 이뤄지지 않게 된다.
checkstyle.xml, pmd.xml 등은 프로젝트디렉토리/.sonar/* 에 두는 것 같음.sonar.jdbc.* 프라퍼티는 무시된다.apply plugin: 'sonar-runner'
sonarRunner {
sonarProperties {
property "sonar.host.url", "http://my.server.com"
property "sonar.jdbc.url", "jdbc:mysql://my.server.com/sonar"
property "sonar.jdbc.driverClassName", "com.mysql.jdbc.Driver"
property "sonar.jdbc.username", "Fred Flintstone"
property "sonar.jdbc.password", "very clever"
}
}
sonar.working.directory 함부로 지정하지 말고 기본값 $project.buildDir/sonar으로 둘 것. 여기서 지정된 워킹 디렉토리는 자동으로 sonarRunner 실행시 전체 삭제를 한다.sonar.exclusions 프라퍼티를 *,**,? wild card를 이용해 지정한다. 여러개가 필요하면 쉼표로 구분한다.sonarRunner { sonarProperties { property 'sonar.exclusions', 'com/xxx/**/*_.java,com/**/QMyEntity.java,....' } }
def excludeFromSonar(List exclusions) { project.sonarRunner { sonarProperties { property 'sonar.exclusions', exclusions.join(",") } } } // 배열 기반 호출 excludeFromSonar(['com/xxx/**/*_.java', 'com/**/QMyEntity.java'])
jacoco.exec)가 생성이 안되면 sonar 도 코드 커버리지 정보를 분석하지 않는다.Incompatible version 1007 오류 : jacoco 0.7.5부터 바이너리 파일 포맷이 변경되었음. sonarqube도 그에 맞는 버전을 사용하지 않으면 오류가 발생한다.sonar.jacoco.reportPath 프라퍼티로 지정한다. 기본값은 자동으로 Gradle JaCoCo Plugin 플러그인에 지정한 파일이다.sonar.working.directory 디렉토리 아래이면 안된다. 따라서 기본 sonar.working.directory인 build/sonar아래에 두면 안된다.-Dsonar.verbose=true 상세 로그gradle sonarRunner -Dsonar.host.url=http://sonar.mycompany.com -Dsonar.jdbc.password=myPassword -Dsonar.verbose=true