[英]GWT - adding external java classes to client project
我有一个GWT项目。 客户端代码位于“客户端”目录中。 我想附加外部目录中的外部java类(主要是普通的POJO DTO类)。 如何配置gwt.xml文件?
我得到这种错误:
[错误]'文件中的错误:/ C:/development/projects/CodeSpaces/LocateMe/LocateMeWeb/src/com/dominolog/locateme/client/LocateMeWeb.java'[错误]第56行:没有源代码可用于类型com .dominolog.locateme.model.dto.LocationInfo; 你忘了继承一个必需的模块吗?
如果你有java源文件,你只需要将目录添加到.gwt.xml文件中。 例如,如果您有一个名为shared的子目录,您将添加以下行:
<source path='shared'/>
名为shared的文件夹必须是主程序包下的一个级别。 因此,如果您将项目.gwt.xml文件放在com.yourdomain.project,那么共享文件夹.package将是com.yourdomain.project.shared。 请参阅http://code.google.com/webtoolkit/doc/latest/DevGuideOrganizingProjects.html#DevGuideModules上的“ 源路径”部分
如果您没有源代码并且只有类,则必须按照Hilbrand的说明导入模块。
这是另一个有效的解决方案http://www.gordonizer.com/2012/01/referencing-third-party-library-source.html 。
我做空(以防这个链接有一天也无效):
com.foo.bar.bat
。 com.foo.bar
(没有子包bat
)。 在新包中,您将创建一个新的GWT模块文件Foo.gwt.xml
,其内容类似于
<module>
<source path="bat" />
</module>
(为了便于阅读,我省略了XML标题)
最后使用inherit
标记将此新模块添加到主GWT模块:
<inherits name="com.foo.bar.Foo"/>
GWT要使用的任何Java类都必须具有模块文件,并且符合包含子包的包结构。 有关更多详细信息,请参阅此stackoverflow答案: 将Java包添加到GWT 。 在这种情况下,可以在包含以下内容的com.dominolog.locateme.model
目录中创建模块文件(例如model.gwt.xml
):
<module>
<source path="dto" />
</module>
在主模块文件中添加对此模块文件的引用,然后GWT将获取com.dominolog.locateme.model.dto
包中的所有类。
2注意事项:
GWT将查看目录(和子目录)中的所有类
包中的类必须存在于源文件中,并且可能不包含对GWT无法解析的其他库的任何引用(当使用引用特定数据库用法的dto类注释时,这可能是一个限制)。
更新:重写的答案更具体。
我会尝试更具体。 我的工作区结构是:工作区
LocateMeWeb是一个具有标准项目布局的GWT应用程序。 在LocateMeModel中,我有Java类,它们定义了LocateMeWeb,LocateMeMobile和LocateMeServer常用的dto(数据传输对象)。 因此,我需要GWT从此目录(LocateMeModel)获取文件并将其编译为客户端代码。 有可能吗? 从我看到GWT只允许代码必须在GWT项目的客户端目录下。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.