如何别名 gradle 任务,就好像它是用 -x 参数调用的一样



我想要而不是gradle cleanIdea idea -x compileJava -x compileTestJavagradle ideaNoRecompile

您可以使用

TaskExecutionGraph来执行此操作。首先,您需要提供一个名为 ideaNoRecompile 的自定义任务,在配置阶段,您需要检查此图是否包含ideaNoRecompile任务(这意味着该任务将被执行。如果应该执行此任务,那么您可以使用 closгre 跳过所有任务,您不想被执行。像这样:

task ideaNoRecompile(dependsOn:idea) {
    gradle.taskGraph.whenReady { graph ->
        if (graph.hasTask(ideaNoRecompile)) {
            compileJava.enabled = false
            compileTestJava.enabled = false
        }
    }
}

我找到了另一个类似的答案:

task ideaNoRecompile {
    finalizedBy allprojects*.tasks*.idea
    doFirst {
        def skipTasks = ['compileJava', 'compileMirah', 'processResources', 'classes', 'compileTestJava', 'compileTestMirah', 'processTestResources', 'testClasses', 'jar', 'mergeProperties', 'generateModuleManifest' ] as Set
        allprojects*.tasks*.each {
            if (skipTasks.contains(it.name))
                it.enabled = false
        }
    }
}

相关内容

最新更新