当我在 settings.gradle 文件中包含项目时,如何不包含构建任务?

Posted

技术标签:

【中文标题】当我在 settings.gradle 文件中包含项目时,如何不包含构建任务?【英文标题】:How can I not include a build task when I include a project in my settings.gradle file? 【发布时间】:2013-01-24 15:27:05 【问题描述】:

我的settings.gradle 文件如下所示:

include "serverTest", "shared"

serverTest build.gradle 文件看起来像:

group = 'gradle'
version = '1.0'
defaultTasks 'build'
apply plugin: 'java'
apply plugin: 'eclipse'
sourceCompatibility = JavaVersion.VERSION_1_6

dependencies

  compile project(':shared')

目录结构是: 顶层包含 settings.gradle 文件,其中包含文件夹 shared 和 serverTest 。然后在serverTest目录中有build.gradle文件。

当我在顶层运行 gradle 时,它​​会输出:

:shared:compileJava UP-TO-DATE
:shared:processResources UP-TO-DATE
:shared:classes UP-TO-DATE
:shared:jar UP-TO-DATE
:serverTest:compileJava UP-TO-DATE
:serverTest:processResources UP-TO-DATE
:serverTest:classes UP-TO-DATE
:serverTest:jar UP-TO-DATE
:serverTest:assemble UP-TO-DATE
:serverTest:compileTestJava
:serverTest:processTestResources UP-TO-DATE
:serverTest:testClasses
:serverTest:test

我不希望它执行任务:serverTest:test。我尝试将我的 defaultTasks 更改为仅 compileJava 但这不起作用,还有其他人有什么想法吗?

【问题讨论】:

我假设您还为根项目声明了defaultTasks?据我所知,只考虑默认项目的defaultTasks(根据调用 Gradle 的目录确定)。 您是一直想跳过serverTest:test 任务,还是偶尔跳过? @HieryNomus 当我从顶层运行它时总是 @PeterNiederwieser 但即使我确实在根项目上设置了 defaultTasks,它不会仍然执行与现在在 serverTest 项目中相同的任务吗? 好吧,如果您将build 设置为默认值,那肯定包括test究竟你想达到什么目的? 【参考方案1】:

好吧,这个问题已经以不同的方式提出,问题的主题是;

如何排除构建任务的子任务?

1 . gradle build -x test

上述指令在从 CLI 执行 gradle build 命令时很有帮助;这排除了测试任务,但我们想在 build.gradle 文件中以编程方式排除测试任务。请在下方查看相应问题的答案。

2 。 check.dependsOn -= 测试

将这个小脚本复制到您的 build.gradle 文件中。 现在,当您从 CLI 执行 gradle build 时,您的测试根本不会运行。

干杯!

【讨论】:

【参考方案2】:

只有存在构建任务时,您才可以尝试禁用该任务...类似于:

project(":serverTest").test.onlyIf  !gradle.taskGraph.hasTask(":shared:build") 

【讨论】:

以上是关于当我在 settings.gradle 文件中包含项目时,如何不包含构建任务?的主要内容,如果未能解决你的问题,请参考以下文章

当我在PHP中包含文件时,它给我一个空白屏幕?

在android NDK中包含本地头文件时的未定义引用

ESLint 不相信我在我的 tsconfig 中包含了 .vue 文件

在gradle项目中包含jar文件[重复]

在 asp.net 中包含 .css 文件

如何在 Cocoa 应用程序中包含 OpenCV?