eclipse 下自动构建的特性比./gradlew build快很多。
经过一些研究,我的发现是它只编译和构建更改的文件并将其替换到构建文件夹中。
那么为什么./gradlew build命令不能编译和构建已经更改的文件并将其替换到 build 文件夹中,并使整个构建过程更快。
我最近开始使用热插拔代理 + DCEVM 的自动构建功能。
eclipse 下自动构建的特性比./gradlew build快很多。
经过一些研究,我的发现是它只编译和构建更改的文件并将其替换到构建文件夹中。
那么为什么./gradlew build命令不能编译和构建已经更改的文件并将其替换到 build 文件夹中,并使整个构建过程更快。
我最近开始使用热插拔代理 + DCEVM 的自动构建功能。
为什么 gradlew build 命令不能只编译和构建已更改的内容并使过程更快?
没有可靠的方法来确定需要重新编译的内容。例如,编译时常量被内联,并且在类文件中没有它们来自哪里的痕迹(它可以在源文件中找到,这意味着解析它们并浪费时间;它可以存储在一些辅助文件和一些工具可以做到)。
有关详细信息,请参阅本节的“限制”部分。
原因可能是他们没有通过 gradle 的配置步骤。
当然,但配置步骤通常不会花费那么长时间。
Eclipse 知道哪些文件已更改
好点(在holwgler的评论中)。
前段时间我花了一些时间试图让我的 gradle 编译更快,但我放弃了。Eclipse 的速度非常快,原因有很多:
我的“解决方案”忽略了这个问题。我在 Eclipse 中做所有事情,除了集成测试(它比编译花费的时间更长)和生产构建(它们很少见,所以我不在乎)。
您可能想阅读这些性能提示。
要找出时间花在哪里,请使用
./gradlew clean; ./gradlew --profile jar
对我来说,90% 的时间只是:compileJava
.