tl;dr
IntelliJ IDEA自带的构建工具以文件的修改时间作为依据来判断文件是否被修改过。
无法增量构建的原因可能是文件的修改时间在未来。
啰嗦
IntelliJ IDEA中在不使用第三方构建工具(maven, gradle等),而是使用IDEA自身的build功能时,出现了无法增量build,每次都是rebuild的状况。即不修改文件也会重新编译一些文件,原因是IDEA判断文件是否有变化是根据文件的修改时间判断的。如果系统时间向未来调过,并修改了文件,文件记录了未来的时间作为修改日期。IDEA的build或是debug等功能(debug包括build步骤)就会认为该文件做过修改,会再次进行编译。