From e2aba3d31799ef108dd99f34a212f8e663764102 Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Thu, 10 Apr 2014 11:22:14 +0200 Subject: [PATCH] Add sonar integration. This commit configures the SonarRunner plugin so that SonarQube can be used against the project. A few customizations were applied to namely exclude the asm and cglib repackaged classes. Issue: SPR-10766 --- build.gradle | 58 ++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 54 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index 0633bd1b1f..d621ad56e5 100644 --- a/build.gradle +++ b/build.gradle @@ -10,6 +10,15 @@ buildscript { } } +ext { + linkHomepage = 'https://projects.spring.io/spring-framework' + linkCi = 'https://build.spring.io/browse/SPR' + linkIssue = 'https://jira.spring.io/browse/SPR' + linkScmUrl = 'https://github.com/spring-projects/spring-framework' + linkScmConnection = 'scm:git:git://github.com/spring-projects/spring-framework.git' + linkScmDevConnection = 'scm:git:ssh://git@github.com:spring-projects/spring-framwork.git' +} + configure(allprojects) { project -> group = "org.springframework" version = qualifyVersionIfNecessary(version) @@ -174,6 +183,20 @@ configure(subprojects - project(":spring-build-src")) { subproject -> apply plugin: "merge" apply from: "${gradleScriptDir}/publish-maven.gradle" + configurations { + jacoco + } + + dependencies { + jacoco("org.jacoco:org.jacoco.agent:0.7.1.201405082137:runtime") + } + + gradle.taskGraph.whenReady {taskGraph -> + if (taskGraph.hasTask(':sonarRunner')) { + test.jvmArgs "-javaagent:${configurations.jacoco.asPath}=destfile=${buildDir}/jacoco.exec,includes=org.springframework.*" + } + } + jar { manifest.attributes["Created-By"] = "${System.getProperty("java.version")} (${System.getProperty("java.specification.vendor")})" @@ -436,10 +459,6 @@ project("spring-context") { // pick up RmiInvocationWrapperRTD.xml in src/main sourceSets.main.resources.srcDirs += "src/main/java" - - test { - jvmArgs = ["-disableassertions:org.aspectj.weaver.UnresolvedType"] // SPR-7989 - } } project("spring-messaging") { @@ -1042,6 +1061,22 @@ project("spring-framework-bom") { } } +apply plugin: 'sonar-runner' + +sonarRunner { + sonarProperties { + property "sonar.projectName", "Spring Framework" + property "sonar.profile", "Spring Framework" + property "sonar.jacoco.reportPath", "${buildDir.name}/jacoco.exec" + property "sonar.links.homepage", linkHomepage + property "sonar.links.ci", linkCi + property "sonar.links.issue", linkIssue + property "sonar.links.scm", linkScmUrl + property "sonar.links.scm_dev", linkScmDevConnection + property "sonar.java.coveragePlugin", "jacoco" + } +} + configure(rootProject) { description = "Spring Framework" @@ -1287,6 +1322,21 @@ configure(rootProject) { } +configure([project(':spring-build-src'), project(':spring-framework-bom')]) { + sonarRunner { + skipProject = true + } +} + +configure(project(':spring-core')) { + sonarRunner { + sonarProperties { + property "sonar.exclusions", + "src/main/java/org/springframework/cglib/**/*,src/main/java/org/springframework/asm/**/*" + } + } +} + /* * Support publication of artifacts versioned by topic branch. * CI builds supply `-P BRANCH_NAME=` to gradle at build time.