如何在GWT项目中使用自定义包结构?

时间:2015-03-27 16:57:56

标签: gwt gwt-hosted-mode

我使用通过Eclipse GWT插件创建新GWT项目时生成的常规GWT项目结构,例如, com.mycompany.mygwtmodule.client,用于GWT编译成JavaScript的所有客户端内容。

现在我想添加一些带有自定义包结构的客户端代码,例如org.othercompany.somepackage ...

可行吗?如果是这样,怎么样?

如果不可行,我不需要解决方法。但是,您可能仍然有助于了解我为什么要这样做:自定义程序包结构来自我的GWT项目使用的第三方GWT模块。我只需要从中复制到我的项目中的一小部分类,而不是包含整个模块,其中包含许多我不关心的内容。那些课程互相使用。因为我根本不想触摸他们的代码,所以我保留了原始的包结构。

我尝试添加< source path =' my-eclipse-project-path / src / org / othercompany / somepackage' />到我的gwt.xml,但在托管模式下我得到错误:"没有源代码可用于类型org.othercompany.somepackage.SomeClass;你忘了继承一个必需的模块吗?" 不,我没有;-)代码就在那里,但我无法让GWT找到它。

感谢任何有用的评论!

2 个答案:

答案 0 :(得分:2)

最好你创建两个单独的模块,因为你从其他第三方jar获取代码。 首先创建包含包结构的模块   - com.mycompany.mygwtmodule(一个模块) 第二个创建另一个模块  -org.othercompany.somepackage(另一个模块)

在第一个module.gwt.xml

中继承第二个模块
 <inherits name="org.othercompany.somepackage" />

答案 1 :(得分:1)

您需要在源中添加其他源包。

这是在module.gwt.xml中完成的。有一个元素源,它将列出要包含在客户端中的所有源包:

<source path="client" />
<source path="shared" />

将包含客户端中的所有包并共享到前端代码中。

详情请见:http://www.gwtproject.org/doc/latest/DevGuideOrganizingProjects.html#DevGuidePathFiltering

更新:如果你的包没有通用包,你需要创建两个单独的模块,一个继承另一个。

我们经常使用它,效果非常好。