gpt4 book ai didi

scala - 如何确定何时 Play ! 2 必须重新编译所有文件?

转载 作者:行者123 更新时间:2023-12-04 04:06:06 24 4
gpt4 key购买 nike

当我在 Play 2 应用程序中编辑 scala 文件时,有时只重新编译了几个文件,但通常必须重新编译整个代码库:

[info] Compiling 1 Scala source to /home/michael/code/superglot/target/scala-2.10/classes...
[success] Compiled in 1s

相对
[info] Compiling 2 Scala sources to /home/michael/code/superglot/target/scala-2.10/classes...
[info] Compiling 52 Scala sources and 1 Java source to /home/michael/code/superglot/target/scala-2.10/classes...
[success] Compiled in 13s

但是,对于何时需要完全重新编译,我看不到明显的模式。如果我向模型或 Controller 类添加一些空格,它可能只会编译该文件,但对可比较的文件执行相同操作会触发重新编译。

我希望我的重新加载次数接近 1,因为目前我经常等待完全重新编译。我很乐意重构我的代码以使我正在处理的区域更快地重新加载,但我不知道我什至可以做些什么来实现这一点。对于典型的 Play 2 应用程序来说,频繁的重新编译是正常的,还是我的有什么异常?

最佳答案

通常,如果您更改文件的“源 API”,则会重新编译该文件的依赖项。源 API 由非私有(private)方法和类型的签名组成。因此,如果您有一个所有内容都依赖的文件,则对该文件中签名的更改可能会导致大量重新编译。此外,当祖先的 API 发生变化时,必须重新编译所有后代。

您可以从 last compile 获得更多信息,例如触发其他文件重新编译的原因。 (在多模块构建中,last <project-name>/compile )您可以

如果添加无关紧要的空格会导致重新编译其他文件,则它始终是一个错误,通常在 scalac 本身中。此类错误的一个示例是 SI-7361 (不是说它对除了编译器开发人员之外的任何人都有用!)在 sbt here 中得到解决.为了解决这些问题,我们需要一个可重现的测试用例。 (考虑到这方面经常涉及的工作,您可能会等待 0.12.4 或 0.13.0 看看它们是否能解决您的问题。)

0.13.0 有一些改进,有望减少 API 更改时失效的内容。

关于scala - 如何确定何时 Play ! 2 必须重新编译所有文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16490525/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com