我被介绍到 Play 框架,我发现它的令人惊奇的事情之一是不需要编译项目。您只需保存编辑的文件并重新加载网页即可。
我听说 Java 源代码被编译为字节码,然后使用 JIT 编译器进行编译,那么 Play 框架内部到底有什么魔力呢?
在 DEV 模式下运行时,Play 的工作方式是检查 java 文件的最后修改日期,并将它们与运行时生成的 .class 文件交叉引用。如果它发现某些内容发生了变化,那么它会在运行时重新编译它们。
在 Play 1.x 中 - 使用 eclipse jdt 编译器 (org.eclipse.jdt.internal.compiler.Compiler) 完成重新编译。如果您想查看 Play 1.x 中的代码,只需查看以下类 -https://github.com/playframework/play/blob/master/framework/src/play/classloading/ApplicationCompiler.java https://github.com/playframework/play/blob/master/framework/src/play/classloading/ApplicationCompiler.java
在 Play 2.x 中,Play 看起来好像是通过与 SBT 工具互连来实现的。看一下这个 -https://github.com/playframework/Play20/blob/master/framework/src/play/src/main/scala/play/core/system/ApplicationProvider.scala https://github.com/playframework/Play20/blob/master/framework/src/play/src/main/scala/play/core/system/ApplicationProvider.scala
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)