【问题标题】:Intellij/GWT Starting a gwt application without permutationsIntellij/GWT 启动没有排列的 gwt 应用程序
【发布时间】:2022-01-09 20:12:13
【问题描述】:

我想使用外部码头和 gwt 编译服务器(使用 -noserver)在开发模式下启动我的 gwt 应用程序。

使用 3 个排列 (user.agent=safari) 启动网络服务器 (jetty + gwt war) 需要 250 秒的选项:

  • -Dgwt.compiler.skip=true
  • -Dgwt.draftCompile=true
  • -Dgwt.compiler.localWorkers=8
  • -Dgwt.compiler.optimizationLevel=0

在 MyProject.gwt.xml 文件中

<set-property name="user.agent" value="safari" />

然后我启动dev模式,当我想刷新客户端时,gwt编译服务器再做2次排列。

在启动码头时是否可以避免排列?

我知道 -Dgwt.compiler.skip=true 避免了排列,但它不会生成 gwt 编译服务器所需的最小 js,缺少包含 MyProject.nocache.js 或 MyProject.devmode.js 等文件的 MyProject 目录所以我不能让编译服务器在我的浏览器上完成他的工作。

如果我使用选项 -Dgwt.compiler.skip=true,我的网络服务器会在 30 秒后启动,但我会卡住。

我不知道为什么 gwt 需要在启动 webserver 时进行排列,这不是 gwt 编译服务器在 dev 模式下的工作吗?

编辑:我想我和 2014 年的这个人有同样的问题https://groups.google.com/g/google-web-toolkit/c/p9BGyLxiLkE

除了我使用的是 gwt 2.9

【问题讨论】:

  • 您能否分享生成的compilation-mappings.txt 文件和构建日志以确认这里发生了什么?
  • 嗨,我在哪里可以找到这个文件?在代码服务器 html 页面中,当我单击带有模块名称的链接时,我只有 3 个文件 MyModule.nocache.js MyModule.recompile.nocache.js clear.cache.gif
  • @ColinAlworth 我觉得我的问题和2014年这个人的问题是一样的groups.google.com/g/google-web-toolkit/c/p9BGyLxiLkE
  • 当您进行构建时,该文件将构建到与您的 MyModule.nocache.js 相同的输出目录中。如上所述启动您的码头,然后共享生成的文件。话虽如此,您在启动自己的码头时不需要生成 GWT 生产 JS - 您如何启动码头,这是一个要求,“我被卡住了”实际上意味着为什么超级开发模式不起作用?
  • @ColinAlworth 问题是没有生成 MyModule 目录,其中包含 MyModule.nocache.js 和其他文件。如果我删除参数 -Dgwt.compiler.skip=true 没关系,但它会运行排列...我使用此命令 clean install -Dgwt.compiler.skip=true -Dgwt.draftCompile=true -Dgwt.compiler 构建我的模块。 Intellij 中的 localWorkers=8

标签: java gwt jetty


【解决方案1】:

听起来您的项目设置不正确。您使用的是什么版本的 GWT。这是开发模式“超级开发模式”还是旧开发模式?

在启动码头时是否可以避免排列?

Web 服务器 (jetty) 启动时不应生成排列。只有当您在浏览器中打开页面时,代码服务器才会运行 GWT 编译器来编译模块,然后根据您的浏览器类型绑定到 one 用户代理,然后编译该 1 个排列。

【讨论】:

  • 您好,我正在使用具有超级开发模式的 gwt 2.9.0
  • 最初在我的端点中指向 MyModule.nocache.js 的脚本是 MyModule/MyModule.nocache.js 我尝试了127.0.0.1:9876/MyModule/MyModule.nocache.js,但我有其他错误(未找到 Cors 和 css 文件)我不知道如果这是启动 Web 服务器的好方法,不知道如何解决这个问题
  • 好的,所以我认为 127.0.0.1:9876/MyModule/MyModule.nocache.js 现在还可以,但是客户端在 127.0.0.1:9876 而不是 127.0.0.1:8080 上调用我的 rpc,你呢知道我错过了什么吗?
  • 代码服务器(默认情况下)在端口 9876 上运行。您的网络服务器(码头)在端口 8080 上运行。在您的浏览器中,您访问您的 HTML 页面 localhost:8080/MyWebapp/index.html 。该 HTML 页面因此引用了您的 GWT JS 文件:
  • 好的,但是当我启动我的网络服务器时,MyWebapp 目录没有生成是正常的,当我使用书签开发模式时,它没有找到任何 GWT 模块,这些模块设置在 MyWebapp/ WebWebapp.nocache.js 由代码服务器生成
【解决方案2】:

您可以通过折叠 gwt.xml 中的所有属性来避免多重排列 这会将所有排列合并为一个

<collapse-all-properties/>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-10
    • 1970-01-01
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多