문서의 이전 판입니다!
sonarRunner
태스크를 실행하면 곧바로 ${buildDir}/sonar
디렉토리를 삭제한 뒤 새로 생성한다. 따라서 이 이전 태스크(특히 test
)에서 ${buildDir}/sonar
디렉토리 아래에 jacoco.exec
처럼 분석용 파일을 생성하게 하면 해당 파일이 삭제돼 버려 아무런 분석도 이뤄지지 않게 된다.
checkstyle.xml
, pmd.xml
등은 프로젝트디렉토리/.sonar/*
에 두는 것 같음.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" property "sonar.working.directory", "build" } }
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 도 코드 커버리지 정보를 분석하지 않는다.-Dsonar.verbose=true
상세 로그gradle sonarRunner -Dsonar.host.url=http://sonar.mycompany.com -Dsonar.jdbc.password=myPassword -Dsonar.verbose=true