【问题标题】:GWT blamed RequestFactory ValidationTool must be run on on sub module(project) when launching main project启动主项目时,GWT 责怪 RequestFactory ValidationTool 必须在子模块(项目)上运行
【发布时间】:2013-03-13 01:49:38
【问题描述】:

GWT 2.5.0/Google Plugin for Eclipse/m2e/GWT-maven-plugin 2.5.0/Request Factory

我根据 GWT wiki working with maven 配置我的项目,它工作得很好,但在我的子项目中遇到了一些问题。

假设我有两个项目 A 和 B,A 是一个标准的 GWT 项目,B 是子项目并且有一个 GWT 模块,它包含一些常见的 UI 小部件和一些常见的实体代理和 RequestFactory,A 项目依赖于 B 项目通过Maven依赖,在A的Module.gwt.xml中,对B模块也有继承。

问题是当我尝试使用 GPE 启动一个项目时,它归咎于:

The RequestFactory ValidationTool must be run for the … XXXRequestFactory type

XXXRequestFactory 在 B 项目中的位置。我必须在 Eclipse 中关闭项目 B,所以它不会受到责备,当我想修改 B 项目中用于查看更改的 B 项目中的某些内容时,这很麻烦,我必须关闭 B 然后查看更改,然后打开 B 和进行了更改...

我想知道是否有办法解决这个问题,这样我的生活会更轻松。 谢谢。

还有一件事,我也在项目 B 中使用了maven-processor-pluginbuild-helper-maven-plugin,并确保当我在 B 上调用 maven install 时目标运行,但似乎没有帮助。

【问题讨论】:

    标签: gwt maven requestfactory google-plugin-eclipse gwt-maven-plugin


    【解决方案1】:

    我也遇到了这个问题,这里是解决这个问题的解决方案。这个答案假设您需要在开发模式下执行 GWT 应用程序(正如您提到的您尝试使用 gwt eclipse 插件)

    1. 您可能已经知道RequestFactory 必须在执行前验证接口、域类型和代理。因此,您需要为此启用注释处理,除了所述验证之外,它还会为服务器端组件创建映射数据。如果此过程不成功,它将抛出您提到的错误。

    2. 您可以在项目属性中为项目 B 启用 requestfactory 验证。转到编译器属性,启用注释处理,提供requestfactory-apt.jar 的路径。在此之后,当您编译项目时,您可以在包含映射文件的项目主目录中看到 .apt_generated。如果您打开其中一个,您可以看到为您的代理生成的映射。

    3. 启动应用程序(在您的情况下为项目 A),它应该可以正常运行

    在 Maven 世界中,您必须指定此 apt jar 的依赖项。除此之外,您在执行mvn compile 时可能会在这些生成的类中遇到编译器错误,要解决此问题,只需删除.apt_generated 中的内容即可。

    【讨论】:

      猜你喜欢
      • 2013-04-28
      • 1970-01-01
      • 2012-05-19
      • 2012-03-05
      • 1970-01-01
      • 2019-10-26
      • 2014-10-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多