Java 如果在编译过程中编辑文件,会发生什么情况?

Java 如果在编译过程中编辑文件,会发生什么情况?,java,scala,compilation,Java,Scala,Compilation,有时编译需要很长时间,我想在编译文件时处理它。编译期间保存新文件会影响生成吗?还是所有内容都已预加载?我自己尝试过,我发现所有内容都已预加载。您也可以添加和编辑您得到的内容 我不确定这是一个有意义的问题:“所有编译器和语言都是这样吗?” 对于给定的构建系统,我可以在构建过程中编辑源代码吗 对于ant构建,很明显ant会提前(基于文件时间戳)决定编译什么,但您不知道编译任务何时启动 的确,编译器只读取源文件一次,但您通常不知道何时会发生这种情况 有趣的用例是: 当我运行sbt>~test时,sbt

有时编译需要很长时间,我想在编译文件时处理它。编译期间保存新文件会影响生成吗?还是所有内容都已预加载?

我自己尝试过,我发现所有内容都已预加载。您也可以添加和编辑您得到的内容

我不确定这是一个有意义的问题:“所有编译器和语言都是这样吗?”

对于给定的构建系统,我可以在构建过程中编辑源代码吗

对于ant构建,很明显ant会提前(基于文件时间戳)决定编译什么,但您不知道编译任务何时启动

的确,编译器只读取源文件一次,但您通常不知道何时会发生这种情况

有趣的用例是:

当我运行
sbt>~test
时,sbt会在我编辑代码时完成测试运行,还是会中途停止重新编译

我可以看出,使用命令选项来确定编辑是否中止测试运行是很有用的。您可能想要查看测试结果,或者您只对修改后的测试结果感兴趣

如果编译和测试周期似乎没完没了,这一点尤其正确

这是测试的文件。报告说:

按下enter键时,监控将终止


这可能意味着任务执行时监视不会暂停。

我使用maven在scala中进行了尝试,似乎所有内容都已预加载。我想知道,所有的编译器和语言都是这样吗?你有没有尝试过在Windows上打开Word文档时重命名它?你使用了哪种语言/编译器?您认为这只是您的语言/编译器组合的一次性结果,还是所有编译器都预加载了代码?