diff metrics.gradle @ 85:f36eeb411845

add sonar publishing
author smith@nwoca.org
date Tue, 14 Feb 2012 15:18:45 -0500
parents
children bb3fa722df51
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/metrics.gradle	Tue Feb 14 15:18:45 2012 -0500
@@ -0,0 +1,83 @@
+
+apply plugin: "sonar"
+
+gradle.addListener(new SsdtSonarSettings())
+
+ant.property(file: System.getProperty('user.home') + "/.ssdt/sonar.properties")
+
+buildscript {
+  repositories {
+        maven { url 'http://repos.ssdt.nwoca.org/artifactory/gradle-plugins' }
+    }
+    dependencies {
+        classpath "gradle_cobertura:gradle_cobertura:1.0"
+    }
+}
+
+
+sonar {
+    server {
+        url = "http://sonar.ssdt-ohio.org"
+    }
+    database {
+        url = ant.properties['sonar.jdbc.url']
+        driverClassName = ant.properties['sonar.jdbc.driverClassName']
+        username = ant.properties['sonar.jdbc.username']
+        password = ant.properties['sonar.jdbc.password']
+    }
+    project {
+        dynamicAnalysis = "reuseReports"     
+        sourceEncoding = "UTF-8"                    
+    }  
+}
+    
+class SsdtSonarSettings extends BuildAdapter implements BuildListener {
+    
+    def void projectsEvaluated(Gradle gradle) {    
+        Project root = gradle.getRootProject()  
+
+        def testableProjects = root.allprojects.findAll { it.configurations.any { it.name.contains('test') } }
+        
+        root.configure(testableProjects) {  ->
+            def usesGroovy = configurations.any { it.name == 'groovy' } 
+            apply {
+//                plugin com.orbitz.gradle.cobertura.CoberturaPlugin
+            }
+                        
+            sonar {
+                project {
+                    language = usesGroovy ? 'grvy' : 'java'
+                    dynamicAnalysis = "reuseReports"     
+                    sourceEncoding = "UTF-8"                    
+                    coberturaReportPath = file("$reportsDir/cobertura/coverage.xml")                   
+                    withProjectProperties { props ->
+                        props['sonar.cobertura.reportPath'] = "$reportsDir/cobertura/coverage.xml"
+                        props["sonar.cpd.skip"] = true
+                    }                    
+                }
+            }
+              
+//            cobertura {
+//                if (usesGroovy) {
+//                    coverageSourceDirs = sourceSets.main.groovy.srcDirs
+//                }            
+//            }
+            
+        }
+        
+        root.allprojects {
+ 
+            def thisProject = delegate     
+            def usesGroovy = thisProject.configurations.any { it.name == 'groovy' } 
+             
+            sonar {
+                project {                            
+                    language = usesGroovy ? 'grvy' : 'java'
+                    dynamicAnalysis = "reuseReports"     
+                    sourceEncoding = "UTF-8"
+                }
+            }
+          
+        }
+    }
+}
\ No newline at end of file