Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 如何将Cobertura插件应用于所有项目或所有子项目_Maven_Groovy_Gradle_Android Gradle Plugin_Build Script - Fatal编程技术网

Maven 如何将Cobertura插件应用于所有项目或所有子项目

Maven 如何将Cobertura插件应用于所有项目或所有子项目,maven,groovy,gradle,android-gradle-plugin,build-script,Maven,Groovy,Gradle,Android Gradle Plugin,Build Script,我正在尝试将Cobertura插件应用于Gradle构建脚本中的所有项目和子项目。但是,脚本在应用于所有应用程序时无法找到插件。以下是我得到的: buildscript { repositories { jcenter() } } allprojects { beforeEvaluate { project.buildscript { repositories { jcenter()

我正在尝试将Cobertura插件应用于Gradle构建脚本中的所有项目和子项目。但是,脚本在应用于所有应用程序时无法找到插件。以下是我得到的:

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'
}

这就是
build.gradle
的外观:

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

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

这就是
build.gradle
的外观:

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

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

您还可能会发现,您希望将所有子项目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)
这是Synchalt对这个问题的评论:
您还可能会发现,您希望将所有子项目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)
这是Synchalt对这个问题的评论: