为啥 Play Framework 战争包含重复的类文件?

Posted

技术标签:

【中文标题】为啥 Play Framework 战争包含重复的类文件?【英文标题】:Why does Play Framework war contains duplicate class files?为什么 Play Framework 战争包含重复的类文件? 【发布时间】:2015-10-20 14:51:40 【问题描述】:

按照 Play 上的教程,在重新创建并将代码移植到该项目后,我设法构建了该项目。

所以我现在正在做的是运行以下命令来尝试创建战争。

列表项 玩干净的 c:\myproject 播放依赖项 c:\myproject 播放预编译 c:\myproject 玩战争 c:\myproject -o c:\myproject_war\myproject.war

我在 2 个位置看到 .class 文件,这对我来说毫无意义。此外,为什么还要打包 .java 文件? 存储类文件的位置是

myproject.war\WEB-INF\application\eclipse\classes\controllers... myproject.war\WEB-INF\application\precompiled\java\controllers...

另外,我确实更改了 application.conf 文件以设置 application.mode=prod,因为它设置为 dev。

这是假设我们有重复的类文件以及在战争中部署的源代码的地方,如果是这样,系统实际使用了哪些类文件?

此应用在 Tomcat 7 上运行。

【问题讨论】:

更新:此命令将有助于不部署大多数源 java 文件。 C:\local\Projects\JHS\war>play war C:\local\Projects\JHS --exclude app\controllers:app\models:app\utils:app\jobs:app\helpers:app\notifiers -o jhs .war 实用信息更新:在 DEV 模式下,Play 在收到第一个传入的 HTTP 请求时编译您的 Java 源代码。然后它会监视磁盘上的源文件,如果有变化,它会尝试重新编译并重新启动应用程序生命周期。在 PROD 模式下,Play 立即将所有源代码编译为 .class 文件,并使用这些文件。您还可以“预编译”您的应用程序,然后在启动时将“-Dprecompiled=true”作为 JVM 参数传入,让它知道 .class 文件已经存在。 【参考方案1】:

根据我从另一个论坛获得的信息,它似乎就是 Play 所做的,除非我想走自己的 Python 代码来清理 Play 所做的事情,否则我无能为力关于这个。

Google Groups - Play Framework ([1.2.4] Does Play work off of .Java files or the compiled .class files?)

【讨论】:

以上是关于为啥 Play Framework 战争包含重复的类文件?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 Play Framework for Scala 应用程序的 Docker 映像没有以 AccessDeniedException 开头?

Scala Play Framework 和 Angular JS - 在重复和混合概念方面付出了太多努力

为啥 Eclipse 在战争中导出源?

Play Framework 2.4 授权

Play Framework中,打包时如何排除文件?

休眠 3.2.5 与 Play Framework 1.2.5