2015-03-24 2 views
1

Я пытаюсь применить плагин Cobertura ко всем проектам и подпроектам в сценариях сборки Gradle. Тем не менее, скрипты не могут найти плагин при применении ко всем. Вот что я получил:Как применять плагин Cobertura ко всем проектам или всем подпроектам

buildscript { 
    repositories { 
     jcenter() 
    } 
} 

allprojects { 
    beforeEvaluate { 
     project.buildscript { 
      repositories { 
       jcenter() 
      } 

      dependencies { 
       classpath 'net.saliman:gradle-cobertura-plugin:2.2.7' 
      } 
     } 
    } 
} 

subprojects { 
    apply plugin: 'net.saliman.cobertura' 
} 

ответ

1

Это как build.gradle должен выглядеть следующим образом:

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'net.saliman:gradle-cobertura-plugin:2.2.7' 
    } 
} 

allprojects { 
    apply plugin: 'net.saliman.cobertura' 
} 
+0

сцепления , Полностью за мыслью, что, спасибо! – jjNford

1

Вы также можете обнаружить, что вы хотите, чтобы объединить все свои подпроекты Cobertura отчеты в один прекрасный доклад верхнего уровня для всего проекта.

Для этого вам потребуется Cobertura Gradle плагин 2.2+ Я считаю, что и конфигурация что-то вроде:

// note - all non-cobertura config is stripped out of this example 
allprojects { 
    apply plugin: 'cobertura' 
} 
subprojects { 
    cobertura { 
     coverageIgnoreTrivial = true 
    } 
} 
buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath "net.saliman:gradle-cobertura-plugin:2.2.2" 
    } 
} 
def files = subprojects.collect { new File(it.projectDir, '/build/cobertura/cobertura.ser') } 
cobertura { 
    coverageFormats = [ 'xml', 'html' ] 
    coverageSourceDirs = subprojects.sourceSets.main.allSource.srcDirs.flatten() 
    coverageMergeDatafiles = files 
} 
test.dependsOn(subprojects.test) 

, который с большим комментарием syncsynchalt по этому вопросу здесь: https://github.com/stevesaliman/gradle-cobertura-plugin/issues/10