war/文件夹中的几乎所有内容都部署到 GAE。插件使用的临时文件除外,例如 war/WEB-INF/appengine-generated/
war/WEB-INF/文件夹包含设置 GAE 所需的内容。这包括 servlet、队列、日志记录、RPC 等的 GAE 设置。它还包括用于服务器端的库和一些 GWT 映射。
请注意,GWT 库仅在编译时需要,而不是在服务器上。您可以将所有 GWT 库放在 war/ 之外的 lib/ 文件夹中。
- 战争/WEB-INF/deploy/<myapp>/rpcPolicyManifest/**
RPC用于直接从 GWT 代码调用服务器方法。GWT/GAE 旨在允许 RPC 开箱即用。我的猜测是 RPC 策略清单文件的存在足以配置 GAE 以允许 GWT 代码使用 RPC,所以他们只是把它放在那里所以你不必担心它。
- 战争/WEB-INF/deploy/<myapp>/symbolMaps/**
插件自动添加这里需要的东西,所以你不用碰它。但 symbolMaps 似乎是 GWT 使用的字典,用于根据浏览器版本提供不同版本的应用程序。我的一个符号映射文件中的前几行如下所示:
# { 1 }
# { 'user.agent' : 'gecko1_8' }
# jsName, jsniIdent, className, memberName, sourceUri, sourceLine
Duration,,com.google.gwt.core.client.Duration,,jar:file:/opt/eclipse/plugins/com.google.gwt.eclipse.sdkbundle_2.4.0.v201208080121-rel-r42/gwt-2.4.0/gwt-user.jar!/com/google/gwt/core/client/Duration.java,21
鉴于用户代理是 gecko 1.8,它指定如何解释 JavaScript 符号“持续时间”。每个浏览器编译(FF、Opera、Safari、IE 等)都有自己的映射,允许 GWT 编译器针对浏览器进行优化。
- 战争/<myapp>/symbolmanifest.json
我的项目中没有这个文件,但它可能与上面提到的 GWT 符号映射有关。我的猜测是它定义了 GWT 应用程序使用的 JavaScript 符号。如果您从中发布一个片段,我们将能够查看是否是这种情况。
这是一个仅在开发期间使用的缓存文件夹。请参阅GWT 2.4.0 的发行说明:
持久单元缓存:GWT 编译器和开发模式现在缓存运行之间的编译工件。这可以加快迭代开发的启动时间。