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小部件和一些常见的Entity代理和RequestFactory,一个项目依赖于B项目通过Maven依赖,以及在A的Module.gwt.xml中,B模块有一个继承。
问题是当我尝试使用GPE来推动一个项目时,它指责:
The RequestFactory ValidationTool must be run for the … XXXRequestFactory type
XXXRequestFactory在B项目中。我必须在Eclipse中关闭项目B,所以它不会归咎于,当我想修改B项目中的某些内容时,这很麻烦,在A中用来查看更改,我必须关闭B然后查看更改,然后打开B和做了改变......
我想知道是否有办法解决这个问题,这样我的生活会更轻松。 谢谢。
还有一件事,我还在项目B中使用maven-processor-plugin
和build-helper-maven-plugin
,并确保在我在B上调用maven install
时运行目标,但似乎没有帮助。
答案 0 :(得分:0)
我也有这个问题,这是修复此问题的解决方案。这个答案假定您需要以开发模式执行GWT应用程序(正如您提到的尝试使用gwt eclipse插件)
您可能已经知道RequestFactory
必须在执行前验证接口,域类型和代理。因此,您需要为此启用注释处理,除了上述验证之外,还会为服务器端组件创建映射数据。如果此过程未成功,则会抛出您提到的错误。
您可以在项目属性中启用项目B的requestfactory验证。转到编译器属性,启用注释处理,提供requestfactory-apt.jar
的路径。在编译项目之后,您可以在项目主目录中看到包含映射文件的.apt_generated
。如果您打开其中一个,则可以看到代理生成的映射。
启动应用程序(在您的情况下为项目A),它应该没有任何错误地运行
在Maven世界中,您必须指定此apt jar的依赖项。除此之外,在执行mvn compile
时,您可能会在这些生成的类中遇到编译器错误,要解决此问题,只需删除.apt_generated
中的内容即可。