Gradle 渐变:在调用根任务时排除触发子项目任务

Gradle 渐变:在调用根任务时排除触发子项目任务,gradle,build.gradle,artifactory,Gradle,Build.gradle,Artifactory,我有以下项目结构: Root project 'base' +--- Project ':server' +--- Project ':testManager' 每个模块都有自己的artifactoryPublish任务 在baseroot目录下运行根任务时,如何排除执行testManager模块的artifactoryPublish ./gradlew artifactoryPublish-这应该而不是运行testManager:artifactoryPublish 但是我需要能够为一个te

我有以下项目结构:

Root project 'base'
+--- Project ':server'
+--- Project ':testManager'
每个模块都有自己的
artifactoryPublish
任务

base
root目录下运行根任务时,如何排除执行
testManager
模块的
artifactoryPublish

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

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

./gradlew
testManager:artifactoryPublish`-这将在指定模块中启动任务

我试图将以下内容添加到
设置中。gradle

startParameter.excludedTaskNames << ':testManager:artifactoryPublish'

startParameter.excludedTaskNames您可以使用
-x
开关排除运行任务

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

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

适合我的解决方案是将以下内容添加到testManager build.gradle中:

artifactoryPublish.onlyIf { 
    ext.has("publishTestFiles") 
}

仅当需要启动此模块的任务时,才允许使用其他标志

您只需添加到
testManager
模块下一个脚本的
build.gradle

artifactoryPublish.onlyIf { false }