gradle - Gradle:在调用根任务时排除触发子项目任务
问题描述
我有以下项目结构:
Root project 'base'
+--- Project ':server'
+--- Project ':testManager'
每个模块都有自己的artifactoryPublish
任务。
在根目录中运行根任务时,如何排除模块artifactoryPublish
的执行?testManager
base
> ./gradlew artifactoryPublish
- 这不应该运行testManager:artifactoryPublish
.
但我需要能够为一个testmanager
模块单独运行此任务:
> ./gradlew
testManager:artifactoryPublish` - 这应该在指定模块中启动任务。
我尝试将以下内容添加到settings.gradle
:
startParameter.excludedTaskNames << ':testManager:artifactoryPublish'
但在这种情况下,即使我使用模块名称运行任务,它也会始终被跳过。
或者也许有一种方法可以检查是否artifactoryPublish
只调用了testManager
,否则设置artifactoryPublish.skip
标志?
提前致谢。
解决方案
-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
推荐阅读
- sql - 将包含 JSONB 字符串数组的行拆分为两个不同的行(PostgreSQL)
- ios - Scenekit 低 FPS 和高内存使用问题
- swift - 标签宽度未根据标签内容增长
- python - 跨平台最安全的python编码
- javascript - javascript - 使用数组中的元素创建多维数组
- c++ - 使用 std::transform 最终向量保持为空
- python - spaCy - 按标签对实体进行排序的最有效方法
- arrays - 像“♠”这样的符号在谷歌表格公式中是什么意思?
- javascript - 在函数中插入警报
- optimization - 我想使用 16 比 1 MUX 将二进制代码转换为格雷码