2017-01-23 5 views
0

Я работаю над несколькими проектами Gradle проекта и главный build.gradle как это:cobertura + gradle - почему я не могу запустить задачу cobertura?

buildscript { 
repositories { 
    mavenLocal() 
    mavenCentral() 
} 
    dependencies { 
     classpath 'net.saliman:gradle-cobertura-plugin:2.2.4' 
    } 
} 

plugins { 
    id "org.sonarqube" version "2.2.1" 
} 

apply plugin: 'groovy' 
apply plugin: 'cobertura' 

def getVersionName = { -> 
    def stdout = new ByteArrayOutputStream() 
    exec { 
     commandLine 'git', 'describe', '--tags', '--always' 
     standardOutput = stdout 
    } 
    return stdout.toString().trim() 
} 

ext { 
    springFrameworkVersion = '4.3.4.RELEASE' 
} 

subprojects { 
    apply plugin: 'eclipse' 
    apply plugin: 'idea' 
    apply plugin: 'java' 
    apply from: "${parent.projectDir.canonicalPath}/cobertura.gradle" 

    sourceCompatibility = 1.8 
    targetCompatibility = 1.8 

    repositories { 
     mavenCentral() 
    } 

    dependencies { 
     compile("org.springframework:spring-context:${springFrameworkVersion}") 

     testCompile("junit:junit:4.+") 
     testCompile("org.springframework:spring-test:${springFrameworkVersion}") 
    } 
    jar { 
     version = getVersionName() 
    } 
} 

project(':projectA') { 

} 

project(':projectB') { 
    dependencies { 
      compile project(':projectA') 
     } 
    } 

project(':projectC') { 
    dependencies { 
     compile project(':projectB') 
    } 
} 

cobertura { 
    coverageFormats = ['html', 'xml'] 
    coverageIgnoreTrivial = true 
    coverageIgnores = ['org.slf4j.Logger.*'] 
    coverageReportDir = new File("$buildDir/reports/cobertura") 
} 

Но когда я пытаюсь запустить Gradle обертку с задачей Cobertura, он терпит неудачу и выход консоли:

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':instrument'. 
> Could not resolve all dependencies for configuration ':cobertura'. 
    > Cannot resolve external dependency net.sourceforge.cobertura:cobertura:2.0.3 because no repositories are defined. 
    Required by: 
     :main-project:unspecified 

Что здесь происходит?

ответ

2

Как и сообщение об ошибке.

Вы заявили о зависимости от net.sourceforge.cobertura:cobertura:2.0.3 в своем корневом проекте (поскольку он не добавлен явно, я бы предположил, что плагин Gradle cobertura добавляет его неявно, его документация, вероятно, должна сказать так), но у вас нет определенного репозитория для вашего корневого проекта. Вы только объявили репозитории для buildscript (чтобы разрешить плагины и прочее Gradle) и для всех подпроектов в закрытии subprojects. Определите репозиторий также для корневого проекта либо отдельно, либо с помощью закрытия allprojects, и ваша сборка должна работать нормально, по крайней мере в этом отношении.