添加 Gradle 插件任务以构建调用
Adding Gradle plugin tasks to build invocation
这是我的 build.gradle
:
plugins {
id 'net.saliman.cobertura' version '2.3.1'
}
apply plugin: 'groovy'
apply plugin: 'idea'
repositories {
mavenCentral()
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
dependencies {
compile(
'org.codehaus.groovy:groovy-all:2.4.6'
)
testCompile(
'org.spockframework:spock-core:1.0-groovy-2.4'
)
}
cobertura {
coverageCheckTotalLineRate = 95
coverageCheckHaltOnFailure = true
}
如您所见,我已经设置了 Gradle Cobertura 插件。通常通过以下方式构建我的应用程序:
./gradlew build
但是对于 运行 Cobertura,我必须 运行 一个完全不同的调用:
./gradlew cobertura coberturaCheck
我想压缩这些,以便 运行宁 ./gradlew build
也 运行 这两个 Cobertura 任务。
如何重新配置我的构建,以便 ./gradlew build
也 运行s ./gradlew cobertura coberturaCheck
after 所有测试都已完成运行宁?
我快速浏览了 Cobertura 插件的来源。
Cobertura等测试必须运行之前的依赖项都由插件正确设置,因此正确的顺序应该被认为是理所当然的。
实际上,所有 Test
类型的任务都以 Cobertura 报告生成总是 运行 以及覆盖率检查的方式设置。默认情况下,这些任务只是被禁用。
将coberturaCheck
添加到要执行的任务图中启用所有cobertura任务,包括覆盖率检查任务。
将 cobertura
添加到任务图中可启用除覆盖率检查任务之外的所有 cobertura 任务。因此,如果您已经将 coberturaCheck
添加到任务图中,添加 cobertura
的唯一效果是它取决于类型为 Test
.
的所有任务
在您的项目中,类型为 Test
的唯一任务是名为 test
的任务,它已经依赖于 check
,它依赖于 build
,依赖 coberturaCheck
来启用 cobertura 任务就足够了,所以只需在您的构建文件中执行 build.dependsOn coberturaCheck
,或者如果您更喜欢它 check.dependsOn coberturaCheck
.
如果您还想依赖 cobertura
,因为您可能担心将来会添加任务 check
不依赖的 Test
类型的任务,你当然也可以这样做。这看起来像 build.dependsOn tasks.cobertura, coberturaCheck
或 check.dependsOn tasks.cobertura, coberturaCheck
.
cobertura
的额外 tasks.
是必要的,因为还有一个名为 cobertura
的项目扩展,它将在寻找名为 cobertura
的任务之前进行,所以您必须在此处明确声明您想要此任务。
这是我的 build.gradle
:
plugins {
id 'net.saliman.cobertura' version '2.3.1'
}
apply plugin: 'groovy'
apply plugin: 'idea'
repositories {
mavenCentral()
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
dependencies {
compile(
'org.codehaus.groovy:groovy-all:2.4.6'
)
testCompile(
'org.spockframework:spock-core:1.0-groovy-2.4'
)
}
cobertura {
coverageCheckTotalLineRate = 95
coverageCheckHaltOnFailure = true
}
如您所见,我已经设置了 Gradle Cobertura 插件。通常通过以下方式构建我的应用程序:
./gradlew build
但是对于 运行 Cobertura,我必须 运行 一个完全不同的调用:
./gradlew cobertura coberturaCheck
我想压缩这些,以便 运行宁 ./gradlew build
也 运行 这两个 Cobertura 任务。
如何重新配置我的构建,以便 ./gradlew build
也 运行s ./gradlew cobertura coberturaCheck
after 所有测试都已完成运行宁?
我快速浏览了 Cobertura 插件的来源。
Cobertura等测试必须运行之前的依赖项都由插件正确设置,因此正确的顺序应该被认为是理所当然的。
实际上,所有 Test
类型的任务都以 Cobertura 报告生成总是 运行 以及覆盖率检查的方式设置。默认情况下,这些任务只是被禁用。
将coberturaCheck
添加到要执行的任务图中启用所有cobertura任务,包括覆盖率检查任务。
将 cobertura
添加到任务图中可启用除覆盖率检查任务之外的所有 cobertura 任务。因此,如果您已经将 coberturaCheck
添加到任务图中,添加 cobertura
的唯一效果是它取决于类型为 Test
.
在您的项目中,类型为 Test
的唯一任务是名为 test
的任务,它已经依赖于 check
,它依赖于 build
,依赖 coberturaCheck
来启用 cobertura 任务就足够了,所以只需在您的构建文件中执行 build.dependsOn coberturaCheck
,或者如果您更喜欢它 check.dependsOn coberturaCheck
.
如果您还想依赖 cobertura
,因为您可能担心将来会添加任务 check
不依赖的 Test
类型的任务,你当然也可以这样做。这看起来像 build.dependsOn tasks.cobertura, coberturaCheck
或 check.dependsOn tasks.cobertura, coberturaCheck
.
cobertura
的额外 tasks.
是必要的,因为还有一个名为 cobertura
的项目扩展,它将在寻找名为 cobertura
的任务之前进行,所以您必须在此处明确声明您想要此任务。