我使用的是通过Eclipse GWT插件创建新GWT项目时生成的常规GWT项目结构,例如com.mycompany.mygwtmodule.client,用于GWT编译为JavaScript的所有客户端内容。
现在我想添加一些具有自定义包结构的客户端代码,例如org.othercompany.somepackage…
这可行吗?如果是,怎么做?
如果不可行,我不需要变通办法。然而,了解我为什么要这样做可能仍然有帮助:自定义包结构来自我的GWT项目所使用的第三方GWT模块。我只需要从中复制一小部分类到我的项目中,而不是包括整个模块,其中包含很多我不关心的东西。这些类正在相互使用。由于我根本不想接触他们的代码,我保留了他们原来的包结构。
我尝试添加<源路径='my-eclipse-project-path/src.org/othercompany/somepackage'/>到我的gwt.xml,但在托管模式下,我得到了错误:"没有可用于类型org.othercompany.somepackage.SomeClass的源代码;您忘记继承所需的模块了吗?"不,我没有;-)代码就在那里,但我无法让GWT找到它
感谢您的宝贵意见!
最好创建两个独立的模块,因为您从其他第三方jar中获取代码。首先创建包含包结构的模块-com.mycompany.mygwtmodule(一个模块)第二个创建另一个模块-org.othercompany.somepackage(另一模块)
继承第一个模块中的第二个模块.gwt.xml
<inherits name="org.othercompany.somepackage" />
您需要在源代码中添加其他源代码包。
这是在你的module.gwt.xml中完成的。有一个元素源,它将列出客户端要包含的所有源包:
<source path="client" />
<source path="shared" />
将包括客户端中的所有包,并共享到前端代码中。
详细信息可在此处找到:http://www.gwtproject.org/doc/latest/DevGuideOrganizingProjects.html#DevGuidePathFiltering
更新:如果你的包没有通用的包,你需要创建两个独立的模块,其中一个继承另一个。
我们经常用这个,效果很好。