首页 > 解决方案 > Gradle:在调用根任务时排除触发子项目任务

问题描述

我有以下项目结构:

Root project 'base'
+--- Project ':server'
+--- Project ':testManager'

每个模块都有自己的artifactoryPublish任务。

在根目录中运行根任务时,如何排除模块artifactoryPublish的执行?testManagerbase

> ./gradlew artifactoryPublish- 这不应该运行testManager:artifactoryPublish.

但我需要能够为一个testmanager模块单独运行此任务:

> ./gradlewtestManager:artifactoryPublish` - 这应该在指定模块中启动任务。

我尝试将以下内容添加到settings.gradle

startParameter.excludedTaskNames << ':testManager:artifactoryPublish'

但在这种情况下,即使我使用模块名称运行任务,它也会始终被跳过。

或者也许有一种方法可以检查是否artifactoryPublish只调用了testManager,否则设置artifactoryPublish.skip标志?

提前致谢。

标签: gradlebuild.gradleartifactory

解决方案


-x您可以使用switch将任务排除在运行之外

$> gradle --dry-run artifactoryPublish
:artifactoryPublish SKIPPED
:server:artifactoryPublish SKIPPED
:testManager:artifactoryPublish SKIPPED

$> gradle --dry-run artifactoryPublish -x :testManager:artifactoryPublish
:artifactoryPublish SKIPPED
:server:artifactoryPublish SKIPPED

推荐阅读