【问题标题】:How do I prevent the command line arguments of the run configuration for my GWT project from being overwritten?如何防止我的 GWT 项目的运行配置的命令行参数被覆盖?
【发布时间】:2018-02-19 19:49:19
【问题描述】:

我有一个多模块 GWT 项目,我正在尝试在 Eclipse 中使用 SuperDevMode(或者新名称是 GWT Dev Mode with Jetty)进行调试。

我正在使用:

  • Mars .2(版本 4.5.2)
  • GWT 2.7 SDK(虽然也安装了 2.8.1)
  • GWT Eclipse 插件 3.0.0
  • Eclipse JDT 1.3.0 的 Maven 集成
  • gwt-maven-plugin 版本 1.0-rc-8

过去,有时在运行 GWT 开发模式时,运行会失败并显示以下消息:

Runing CodeServer with parameters: [-noprecompile, -port, 9876, -sourceLevel,
1.7, -bindAddress, 127.0.0.1, -launcherDir,
/Users/SomeUser/Documents/customers/SomeCustomer/dev/workspace/FolderName/target/NAME-0.0.1-SNAPSHOT,
-logLevel, INFO, ca.example.Name, .module]
Invalid module name: '.module'
Google Web Toolkit 2.7.0

(是的,它确实说“运行”,而不是“运行”,我刚刚注意到)。请注意,我更改了一些路径和类名,但这些更改应该不重要。

我已经通过编辑运行配置解决了这个问题。事实证明,在末尾添加了一个额外的命令行参数“.module”。当我删除该参数时,我可以调试。

但是,这种说法不断出现。最近,每次我尝试使用 Run As -> GWT Dev Mode with Jetty 调试应用程序时,它都会回来。

我尝试过使用 gwt:devmode maven 目标,到目前为止每次都可以正常工作。

我也尝试过保存运行配置的本地副本。保存的配置看起来不错,但是当我尝试运行它时,在启动调试会话之前添加了“.module”,我得到了同样的错误。

我想我可以开始使用 gwt:devmode 来启动我的调试会话,但调试环境略有不同,所以我希望能够继续使用 GWT 开发模式和 Jetty。

有没有人遇到过这个幻像“.module”插入并想出如何让 Eclipse 停止这样做?

【问题讨论】:

  • 如果模块描述符被重命名,就会发生这种情况。首先,运行您的项目,然后重命名模块描述符,然后再次运行。在这种情况下,您会看到对旧模块描述符的引用和新引用。通常,删除旧引用后它应该可以工作。
  • 据我所知,我不会更改模块描述符。我的工作流程是,尝试调试,得到错误,从运行配置参数中删除“.module”,调试成功。然后下次我尝试调试(没有我知道的更改)时,我再次收到错误(再次,......)。

标签: eclipse gwt run-configuration


【解决方案1】:

快速修复:在 Eclipse 中,您可以将运行配置保存为 xml 文件并将其提交到您的存储库中,这样所有开发人员都可以手头有正确的配置。

闻起来像是有一些文件夹或文件诱使 Eclipse 认为它是一个 .gwt.xml 模块并将其添加到可用模块列表中。

【讨论】:

  • 我已经尝试保存配置。结果文件看起来是正确的,但是当我在 eclipse 中打开它并尝试“运行”它时,我得到了同样的错误,并且配置编辑器显示 eclipse 已经添加了“.module”。似乎在打开配置文件和运行或显示它之间的某个时间,Eclipse(或 GWT 插件或其他东西)正在处理配置的内容并添加“.module。”。我同意你关于它闻起来的假设。我想这是由于我在项目设置中而不是插件中遇到的一些错误。
  • 我们需要更多信息才能真正提供帮助。我不知道您可以共享多少项目,但 eclipse 运行文件(应该是一些 xml)和/或项目文件/文件夹结构的内容将有助于为您提供更好的反馈,
  • 我认为我无法分享该项目的大部分内容。也就是说,我正在测试一个疯狂的假设,该假设可能会提供一些见解,并将提供有关其运作方式的最新信息。
  • 我的项目有时可以说明问题。它是我们在启动新 GWT 项目或“mavenizing”现有 GWT 项目时用作模板的项目。由于它有时只是说明问题,因此我不愿发布它,因为您查看它可能会浪费时间。也就是说,我想出了一个杂乱无章的答案,似乎让问题大部分消失了。我不知道为什么,但现在已经足够了。感谢您的帮助。
【解决方案2】:

到目前为止,大多数情况下,这是一个让我们解决问题的杂乱无章的答案。我怀疑正确的答案是我们的项目结构有点不稳定。随着我们更多地了解 GWT 和设置 maven 项目的标准方法,我们可能会找出正确的答案或重新构建我们的项目,以便我们不再遇到这个问题。

也就是说,当我们重新添加模块定义文件时,问题似乎消失了。

我的意思是……

基于一些随机的谷歌搜索,当我们将 GWT 项目转换为 maven 时,我们一直在从

移动模块定义文件

packagename/modulename.gwt.xml

src/main/module.gwt.xml

这样做似乎会导致上述问题。

为了解决这个问题,我复制了

src/main/module.gwt.xml

返回

packagename/modulename.gwt.xml

问题就消失了,除了有时我们第一次尝试以“使用 Jetty 的 GWT 开发模式”运行项目。是的,我知道我们现在有两个文件副本,这似乎是错误的。

我不知道为什么会这样,并认为模块定义应该在 src/main/module.gwt.xml 中。但它有效,所以我现在可以忍受它。

【讨论】:

    猜你喜欢
    • 2013-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-20
    • 1970-01-01
    • 2017-12-19
    相关资源
    最近更新 更多