手工创建GWT项目目录

时间:2013-05-29 01:39:12

标签: java eclipse gwt directory-structure google-eclipse-plugin

我有兴趣从头开始编写一个简单的GWT应用程序,而无需使用Google Eclipse插件或GWT SDK中的applicationCreator。为什么?因为我觉得它会帮助我真正学习这些自动化工具正在做什么,并且将帮助我的更好地理解 GWT。

我确实安装了Google Eclipse插件并用它来创建一个新的Web应用程序项目(GWT应用程序),只是为了查看它自动生成的文件类型。对于我的给定项目,它有一个名为WebModule的模块(也是应用程序的唯一EntryPoint),这就是Google Eclipse插件给我的内容:

src/main/java
    com.myapp
        WebModule.gwt.xml
    com.myapp.client
        WebModule (implements EntryPoint)
    com.myapp.shared
    com.myapp.server
war/
    webModule/
        lots of folders and files under here...
        clear.cache.gif
        hosted.html
        webModule.nocache.js
    css/
        webModule.css
    hosts/
        webModule.html
    WEB-INF/
        web.xml
    deploy/
        webModule/
            rpcPolicyManifest/
                manifest.txt

所以,我想要做的是在另一个项目中重新创建它,但我自己生成一切。为了做到这一点,我需要了解一些事情,特别是:

  1. 什么是war/webModule目录,以及有哪些资源?
  2. 什么是war/webModule/clear.cache.gif
  3. 有没有办法自己生成war/webModule/webModule.nocache.js?或者我是否需要使用其中一个GWT SDK工具从命令行生成它? (如果是,那是什么/怎么样?)
  4. war/deploy目录是什么?如果我使用RequestFactory而不是GWT-RPC,我是否需要它?
  5. 我在这里缺少任何其他“必需品”?
  6. 提前致谢!

1 个答案:

答案 0 :(得分:5)

  

1什么是war / webModule目录,以及有哪些资源?

此目录是GTW编译器的结果:

  • files * .cache.html是每个区域设置和/或浏览器的版本。
  • * .cache.png是图像资源&您的应用程序使用的精灵。
  • 如果你使用RPC,那么(de)序列化机制也有* .gwt.rpc。
  • 如果你使用GWT主题,即干净的主题,你有一个gds子目录,其中包含css&这个主题的资源。
  

2什么是war / webModule / clear.cache.gif?

这是一个1x1可缓存图像,用于为< img>提供占位符。标签。 请参阅http://code.google.com/p/google-web-toolkit/wiki/ImageBundleDesign(“用于图像的剪切构造函数”)

  

3有没有办法自己生成war / webModule / webModule.nocache.js?或者我需要从命令行生成一个   GWT SDK工具? (如果是,那是什么/怎么样?)

* .nocache.js由GWT编译器生成。它是应用程序加载器,它将选择适合您的应用程序的区域设置/浏览器版本。 它可以使用命令行工具,ant构建文件(例如,参见http://developers.google.com/web-toolkit/doc/latest/RefCommandLineTools)或使用maven生成。

  

4什么是war / deploy目录?如果我使用RequestFactory而不是GWT-RPC,我是否需要它?

使用-extra或-deploy选项生成此目录。 它是未在生产和部署技术信息中部署的文件,例如:

  • rpcPolicyManifest:包含有关所使用的RPC类型的元数据,以及 策略相对文件路径
  • symbolMaps:用于从混淆的javascript文件中检索类名和堆栈跟踪的数据表。

所以我认为如果你不使用RPC,你甚至可能需要它来获得未经过混淆的痕迹。

  

5我在这里缺少任何其他“必需品”?

您可以在此处找到更多详细信息:https://developers.google.com/web-toolkit/doc/latest/DevGuideCompilingAndDebugging

希望这有帮助...