任务buildNeeded的使用场景是什么?

15

我不理解为什么Java插件提供了任务'buildNeeded'。 任务'build'不能解决问题吗? Gradle文档说:

buildNeeded:对项目及其所有依赖项执行完整构建。

build: 对项目执行完整构建。

任务'build'不应该/不会编译并构建所有必要的事情吗? 为什么要区分'build'和'buildNeeded'?


请参阅Gradle官方文档中的“多项目构建”章节。 - Dori
2个回答

21

buildNeeded 命令会对所有被当前项目依赖的项目执行完整的 build,包括了在这些项目中执行 test。如果你想更加谨慎,可以使用此命令。相比之下,build 只会运行被依赖项目的最小任务集(例如: jar)以满足依赖关系。一般情况下,人们更常用 build 命令而不是 buildNeeded


1

构建不会在所有子项目上调用完整构建。

如果您的项目没有依赖项目,那么这没有任何区别。

这个想法是,如果在父项目中更改API,则希望使用新API重新编译所有子项目。


好的,我觉得我漏掉了什么。子项目和子模块有区别吗?那么'gradle clean build'呢? 这会在子项目/子模块上执行完整的构建吗? - Cengiz
1
@Cengiz:gradle clean build 首先会执行 clean(也就是删除 /build 文件夹),然后只对项目进行构建。它的效果与 'gradle clean' 后跟 'gradle build' 相同。 - c_maker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接