0

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

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

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

如果不可行,我不需要解决方法。但是,了解我为什么要这样做可能仍然对您有所帮助:自定义包结构来自我的 GWT 项目使用的第 3 方 GWT 模块。我只需要其中的一小部分类,我将它们复制到我的项目中,而不是包括包含很多我不关心的东西的整个模块。这些类正在相互使用。因为我根本不想碰他们的代码,所以我保留了他们原来的包结构。

我尝试将 <source path='my-eclipse-project-path/src/org/othercompany/somepackage'/> 添加到我的 gwt.xml,但在托管模式下我收到错误:“没有源代码可用于 org.othercompany.somepackage.SomeClass 类型;您是否忘记继承所需的模块?” 不,我没有 ;-) 代码都在那里,但我无法让 GWT 找到它。

感谢您提供任何有用的意见!

4

2 回答 2

2

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

继承第一个 module.gwt.xml 中的第二个模块

 <inherits name="org.othercompany.somepackage" />
于 2015-03-28T02:02:27.340 回答
1

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

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

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

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

详细信息可以在这里找到:http: //www.gwtproject.org/doc/latest/DevGuideOrganizingProjects.html#DevGuidePathFiltering

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

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

于 2015-03-27T17:48:51.167 回答