为什么选择'gradle clean'?

mar*_*dan 47 build-system gradle

为什么我会运行'gradle clean build'而不是'gradle build'?根据我的理解,gradle可以检测源更改并在需要时更新最终工件.那为什么我还需要'清洁'?

Amn*_*hot 64

清洁任务由定义Java插件,它简单地删除文件夹buildDir,从而清洁的一切,包括从以前的版本剩菜其不再相关.不这样做可能会导致不洁构建,这可能会因先前构建产生的构建工件而被破坏.

例如,假设您的构建包含多个失败的测试,并且您认为这些测试已过时,因此需要将其删除.如果不清理测试结果(使用cleanTest任务)或完全构建(通过运行clean任务),您将无法使用失败的测试结果,这将导致构建失败.资源/类从源中删除但仍保留在未清理的构建文件夹中也会发生类似的副作用.

  • 基本上:在完美的世界中,“干净”永远是不必要的,但是 Gradle 无法(可靠地)检测到某些更改(主要是删除)。在这些情况下,“干净”是最简单的逃生口。 (3认同)
  • 我认为如果您删除了测试类,则会导致测试的最新检查失败,这将导致再次运行测试。 (2认同)

Sud*_*ari 39

它删除构建目录。(构建包含gradle操作的输出) gradle 清理演示