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

问题描述 投票:4回答:2

GWT文档规定,所有在客户端编译成JavaScript的源代码都必须在一个子包里,这个子包就是 gwt.xml 文件。 当一个人引用第三方库时,这如何工作?

具体来说,如果我有一个库 foo.jar 而我想使用一些POJO(是指 Serializable),不要吸进任何非Serializable 代码,如何使用这些POJO? 如何告诉GWT它们的源代码在哪里?

gwt client-side pojo
2个回答
5
投票

也请记住,GWT编译器需要实际的Java源码来编译成javascript,所以光有类和所有的类都是可序列化的是不够的。对于RPC来说,要想把这些类通过线路发送,它们必须在到达客户端时能够作为JS使用。

说到这里,可以看看GWt-user中,在模块的 javax/validation/Validation.gwt.xml. 这个文件是放在那里的,这样其他软件包就可以在 javax.validation - 如果你的classpath上有一个jar(和sources),其中的代码是在 com.thirdparty.pojos,你可以在你自己的项目中创建一个模块文件,在你自己的源码中的同一个目录下(类似于 com/thirdparty/pojos/ThirdParthRpc.gwt.xml,并把一个 <source path="" /> 元素来表明整个包是合法的,可以翻译成JS。可能会有一些文件不能被翻译--使用exclude标签来处理这些文件。


0
投票

如果你能控制将foo打包成foo.jar,并且你有所有的源文件,那么这很容易。

如果你有一个打包好的foo.jar,并且恰好有源代码,那么你需要扩展foo.jar,把源代码复制到exploded.jar目录下,生成一个简单的GWT模块.xml文件,并在你的项目模块中添加一个标签。

© www.soinside.com 2019 - 2024. All rights reserved.