maven如何只编译修改过的java文件?

maven如何只编译修改过的java文件?,java,maven,compilation,maven-3,last-modified,Java,Maven,Compilation,Maven 3,Last Modified,我只是想知道这一点,当我在不进行“清理”的情况下进行mvn安装时,maven只编译修改过的java文件。maven如何识别java文件是否被修改?我相信它没有使用文件的上次修改属性 我相信的理由:我有一个模块,在合并了来自svn的一个更改后,我给了mvn安装,它没有编译修改过的文件,当我看到这个更改时,我看到getter和setter中的“long”被修改为“long” 所以我只想知道maven如何识别java文件是否已更改 (p.S我正在使用ApacheMaven 3.0.3,如果这很重要的话

我只是想知道这一点,当我在不进行“清理”的情况下进行mvn安装时,maven只编译修改过的java文件。maven如何识别java文件是否被修改?我相信它没有使用文件的上次修改属性

我相信的理由:我有一个模块,在合并了来自svn的一个更改后,我给了mvn安装,它没有编译修改过的文件,当我看到这个更改时,我看到getter和setter中的“long”被修改为“long”

所以我只想知道maven如何识别java文件是否已更改


(p.S我正在使用ApacheMaven 3.0.3,如果这很重要的话)

我相信Maven编译器插件使用源文件和类文件的最后修改日期来确定是否需要重新编译


编译器的信息非常少,但是
compiler:compile
goal页面包含有关以下属性的信息,该属性可微调过时计算:。这是关于陈旧性的唯一官方声明。

我对maven不太了解,但我可以告诉你,一般来说,“make”类工具使用“last changed”时间戳,这将解释你与svn之间的问题(请参阅。

Robert Scholte在的评论解释了这个过程。这取决于“maven编译器插件”的“useIncrementalCompilation”选项(顺便说一句,在它的版本中,我只设法让“useIncrementalCompilation”与3.1而不是3.0一起工作):

我看到有些混乱,所以有些东西需要改变,也许 改进文档已经足够好了 请注意,非增量将只查看已更改的源文件。 增量还将验证依赖项是否已更改,以及 已添加或删除文件。如果已更改,将删除 完整的类目录。原因是默认的java 编译器相当快,可能比分析每个文件快得多 IIUC eclipse编译器是一个真正的增量编译器 编译器,所以我们可以根据使用的 编译器不删除类目录


如果模块不受版本控制怎么办?然后(类文件时间<源文件时间) => modified@Fakrudeen在这种情况下,Maven应该更改源文件的时间戳,但它没有。@ArtursLicis-为什么?这是由用户更改的-这就是我想的全部内容!@Fakrudeen啊,我与另一种情况混淆了。没错,只需检查类文件是否比源文件早=>需要重新编译。我猜我的想法是错误的,确实如此s使用上次修改的属性。感谢链接!@duncan jones,修改的日期保存在那里。我在“target”文件夹中找不到信息。例如,我在一小时内更改了两个类,而不是在一小时内更改了两个类中的一个。有多少人会发现文件发生了更改“从3.1开始”