문서의 이전 판입니다!
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