ant javac 和 dependship 任务有一些限制,以至于它们对于生产构建不安全。在某些情况下,javac 和 depende 无法检测到在源文件更改时重新编译某些类文件的必要性。
这些限制是否仍然适用于 java 的 sbt 增量编译,或者使用它增量构建生产包是否安全?
除非你的增量编译可以证明等同于完全编译(并且 SBT 不做这种保证,即使它非常好),否则你冒着从增量构建构建生产包的风险。
原因是您的工件可能依赖于历史记录,因此无法正确找到和修复其中的错误。 如果这不会吓到你进入生产环境的东西,那就继续使用 SBT(或 Ant!)来增量构建和部署。
否则,值得花时间从头开始构建,尤其是使用倾向于快速编译的 Java 源代码。