Maven 和 Gradle:如果文件被修改,则重新编译

问题描述

编辑:我询问的功能是所谓的增量构建的一部分。

was told recently Maven 没有任何基于时间戳的任意机制来验证依赖文件是否需要重新编译。修改时间是 make 或 Ant 的基本概念。我在 Ant 的构建脚本中广泛使用它,以对 IDE 未知格式的各种文件进行细粒度的重新编译。

Maven 是否选择仅在 JAR 版本上运行?如果是,它如何与它的配置文件通常也是项目的主要构建文件这一事实一起工作?如何在pom.xml文件中表示Makefilebuild.xml中常用的修改时依赖逻辑?如果通过插件等,那么应该为每个有时晦涩的编译类型使用插件吗?有没有考虑修改间的插件

也许,我不应该期望 Maven 有其他东西提供的功能?是否有一些第三方工具将相关功能添加到 Maven 项目中?它们是否与 IDE 兼容,即 IDE 的 clean&rebuild 会重建本地项目树的过时部分,就像 Ant 项目一样?

最后,Gradle 在上述方面是否与 Maven 相似?

解决方法

事实证明,Gradle 具有该功能。它被称为 incremental build 并同时提供类似 Ant 的灵活性和 Maven 兼容性。