如何在 GWT 项目中使用自定义包结构?
How can I use a custom package structure in a GWT project?
我使用的是通过 Eclipse GWT 插件创建新 GWT 项目时生成的常规 GWT 项目结构,例如com.mycompany.mygwtmodule.client 用于 GWT 编译成 JavaScript 的所有客户端内容。
现在我想添加一些具有自定义包结构的客户端代码,例如org.othercompany.somepackage...
这可行吗?如果是这样,怎么做到的?
如果不可行,我不需要解决方法。但是,了解我为什么要这样做可能仍然对您有所帮助:自定义包结构来自我的 GWT 项目使用的第 3 方 GWT 模块。我只需要从中复制一小部分 类 到我的项目中,而不是包括包含很多我不关心的东西的整个模块。那些 类 正在互相使用。因为我根本不想碰他们的代码,所以我保留了他们原来的包结构。
我尝试将 添加到我的 gwt.xml,但在托管模式下我收到错误:"No source code is available for type org.othercompany.somepackage.SomeClass; did you forget to inherit a required module?"
不,我没有 ;-) 代码都在那里,但我无法让 GWT 找到它。
感谢任何有帮助的评论!
您需要在源中添加其他源包。
这是在您的 module.gwt.xml 中完成的。有一个元素 source,它将列出要为客户端包含的所有源包:
<source path="client" />
<source path="shared" />
将包含客户端中的所有包并共享到前端代码中。
可在此处找到详细信息:http://www.gwtproject.org/doc/latest/DevGuideOrganizingProjects.html#DevGuidePathFiltering
更新:如果您的包没有通用包,您需要创建两个单独的模块,一个继承另一个。
我们经常使用它,效果非常好。
最好创建两个单独的模块,因为您是从其他一些第 3 方 jar 中获取代码的。
首先创建包含包结构的模块
- com.mycompany.mygwtmodule(一个模块)
其次创建另一个模块
-org.othercompany.somepackage(另一个模块)
继承第一个中的第二个模块module.gwt.xml
<inherits name="org.othercompany.somepackage" />
我使用的是通过 Eclipse GWT 插件创建新 GWT 项目时生成的常规 GWT 项目结构,例如com.mycompany.mygwtmodule.client 用于 GWT 编译成 JavaScript 的所有客户端内容。
现在我想添加一些具有自定义包结构的客户端代码,例如org.othercompany.somepackage...
这可行吗?如果是这样,怎么做到的?
如果不可行,我不需要解决方法。但是,了解我为什么要这样做可能仍然对您有所帮助:自定义包结构来自我的 GWT 项目使用的第 3 方 GWT 模块。我只需要从中复制一小部分 类 到我的项目中,而不是包括包含很多我不关心的东西的整个模块。那些 类 正在互相使用。因为我根本不想碰他们的代码,所以我保留了他们原来的包结构。
我尝试将
感谢任何有帮助的评论!
您需要在源中添加其他源包。
这是在您的 module.gwt.xml 中完成的。有一个元素 source,它将列出要为客户端包含的所有源包:
<source path="client" />
<source path="shared" />
将包含客户端中的所有包并共享到前端代码中。
可在此处找到详细信息:http://www.gwtproject.org/doc/latest/DevGuideOrganizingProjects.html#DevGuidePathFiltering
更新:如果您的包没有通用包,您需要创建两个单独的模块,一个继承另一个。
我们经常使用它,效果非常好。
最好创建两个单独的模块,因为您是从其他一些第 3 方 jar 中获取代码的。 首先创建包含包结构的模块 - com.mycompany.mygwtmodule(一个模块) 其次创建另一个模块 -org.othercompany.somepackage(另一个模块)
继承第一个中的第二个模块module.gwt.xml
<inherits name="org.othercompany.somepackage" />