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

时间:2016-01-20 10:44:32

标签: gradle

我想而不是gradle cleanIdea idea -x compileJava -x compileTestJava 打电话给gradle ideaNoRecompile

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

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

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