Gradle 从我的任务所依赖的任务中排除任务

Gradle 从我的任务所依赖的任务中排除任务,gradle,Gradle,我创建了依赖于构建的任务 task packageJar(dependsOn: build, type: JavaExec) { main = 'com.xxxx.util.KiePackageCreator' classpath = sourceSets.main.runtimeClasspath } 但是build任务调用其他任务,如checkstyle,test等。 如何排除它们 我可以通过控制台-x来完成,但是如何在任务内部完成呢?您只需在脚本根目录中将其启用属性设置为

我创建了依赖于
构建的任务

task packageJar(dependsOn: build, type: JavaExec) {
    main = 'com.xxxx.util.KiePackageCreator'
    classpath = sourceSets.main.runtimeClasspath
}
但是
build
任务调用其他任务,如
checkstyle
test
等。 如何排除它们


我可以通过控制台
-x
来完成,但是如何在任务内部完成呢?

您只需在脚本根目录中将其
启用属性设置为false即可禁用任务:

test.enabled = false
但在这种情况下,这些任务永远不会运行。如果您只需要在调用其他任务时不运行它们,则必须使用执行图:

gradle.taskGraph.whenReady {
    taskGraph ->
        if (taskGraph.hasTask(packageJar)) {
            test.enabled = false
        }
}

但目前还不确定,当图形准备就绪时是否可以更改此属性。如果没有,则可以创建一个变量,并在要排除的任务中添加
doFirst
块,该块将根据该变量值抛出
StopExecutionException

我明白了。因此,收件箱中没有像exlude:test、checkstyle
等这样简单的解决方案?@user1432980最简单的方法是使用
-x
falg,但是如果您不能也不想使用
task.enabled=false
永久排除某些任务,那么您必须执行这样一个复杂的解决方案。在这里读一下哦!看见我会调查的。@user1432980当然,如果这些任务是在
packageJar
之后执行的,您可以根据
packageJar
任务状态跳过它们,但它们是在之前执行的,这就是为什么不那么容易的原因