【发布时间】:2019-03-22 14:27:22
【问题描述】:
我有一个项目 rootProject,里面有 5 个子项目,都是 gradle 项目。当我从 rootProject 运行 gradle build 时,它将在所有子项目上运行 gradle build。正如我们所知,gradle build 任务将包含多个子任务,例如 clean、compile、test。
我有一个要求,如果我从 rootProject 运行 gradle build,它将在除 subproject5 之外的所有子项目上运行此命令。在 subproject5 上,它应该只跳过构建任务的测试子任务。同时,如果我进入 subproject5 目录并尝试通过 gradle test 命令访问子任务,它应该可以工作。
请帮帮我。
【问题讨论】:
-
我不能使用这个命令,因为它会跳过所有子项目的测试。该命令必须是 gradle build。我需要在 build.gradle 中添加一些条件。
-
您通过传递要排除的 任务来使用此命令:
:subproject5:test。如果build任务,在没有传递任何选项的情况下,不应该执行某些事情,那么不应该在标准的test任务中完成某些事情,而是在另一个任务中,该构建不依赖于。 -
我无法更改构建命令,因为它被多人使用。我正在考虑在 rootProject 的 build.gradle 中设置一些条件,以便在从 rootProject 运行 gradle build 时,它应该会拾取并且不会对 subproject5 的 build.gradle 产生任何影响。
-
您不应该打破既定的标准约定。构建取决于测试。这是一个标准约定。因此,再次强调,如果您希望在执行构建任务时不执行某些内容,则将该内容放在测试任务以外的任务中。