如何在GWT中引用客户端使用的第三方库源代码?

时间:2012-01-13 21:18:40

标签: gwt client-side pojo

GWT文档指出,在客户端编译为JavaScript的所有源代码必须位于gwt.xml文件的子包中。当一个人引用第三方图书馆时,这是如何工作的?

具体来说,如果我有一个库foo.jar并且我想使用一些POJO(Serializable)并且不使用任何非Serializable代码,我该如何使用这些POJO?如何告诉GWT源代码的位置?

2 个答案:

答案 0 :(得分:5)

请记住,GWT编译器需要实际的Java源代码才能编译为javascript,因此这些类是可用的并且所有类都可序列化是不够的。要使RPC通过线路发送类,它们必须能够在到达客户端时用作JS。

也就是说,看看gwt-user,在模块javax/validation/Validation.gwt.xml。他的文件放在那里,以便javax.validation中的其他包 - 甚至在其他jar中 - 可以编译成JS用于客户端 - 边验证。如果你的类路径上有一个jar(和源代码),代码在com.thirdparty.pojos,你可以在自己的项目中在你自己的源代码中创建一个模块文件(类似com/thirdparty/pojos/ThirdParthRpc.gwt.xml,并放入其中的<source path="" />元素表示整个包合法转换为JS。可能会有一些文件无法翻译 - 使用exclude标记来处理这些文件。

答案 1 :(得分:0)

如果您可以控制包装foo到foo.jar,并且拥有所有来源,那么这很容易。

如果你有一个打包的foo.jar,并且碰巧有源代码,那么你需要扩展foo.jar,将源复制到爆炸的.jar目录中,生成一个简单的GWT module.xml文件并添加项目模块的标签。