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
任务状态跳过它们,但它们是在之前执行的,这就是为什么不那么容易的原因