我已使用<super-source>
功能(GWT 2.7)成功模拟了一些源文件。
但我在Eclipse中遇到“错误的包名”错误。
GWT编译器需要Java文件具有原始包名称,但Eclipse需要它们具有与它们在源文件夹中的位置对应的包名称。
在编译和添加模拟源文件之前,有没有办法以编程方式挂钩到GWT编译器?我想是这样我可以在GWT编译器查看之前使用replaceAll()
来调整包声明。
作为一个临时工作区,我在编译之前运行一个单独的步骤来完成这个技巧。它可以工作,但最好将它作为实际编译过程的一部分,以便在超级开发模式下刷新页面将自动执行此过程。
我看过Generators,但我看不出有任何办法与他们合作。
我考虑过的另一个想法是复制Eclipse编译的一部分。每次我保存一个模拟类,它都可以复制源并重新打包它。但是我在Windows上设置它并不是正常编译的一部分,因此我不得不在构建脚本中复制这些操作。
答案 0 :(得分:1)
Eclipse抱怨因为它想要编译它们,它不应该这样做。
您应该从Eclipse中排除超级源,因此它只将它们视为资源/文本文件。
如果您在编辑这些文件时确实需要Eclipse的功能,那么您可以添加super
(或者它的名称)“package”作为源文件夹,Eclipse将不再抱怨软件包名称不匹配(但可能会出现问题)原始和来自超级源之间的重复类; Eclipse也会编译它们,如果它们最终在运行时/ DevMode的类路径中,它可能会失败;你的应用程序使用超级源而不是原始的JVM中的类)
TL; DR:问题是Eclipse,而不是GWT。