【发布时间】:2026-01-31 08:05:01
【问题描述】:
按照 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 文件已经存在。
标签: java playframework tomcat7 playframework-1.x