我想知道将 GWT 库构建到 JavaScript 库中的最佳方法是什么。当这个要编译成Java脚本的GWT库中没有任何GWT服务器端组件时。
只是简单的前端组件。只包括AJAX调用等。
在 Java 中,GWT 库的使用方式如下:
TheGWTLibrary api = new TheGWTLibrary();
api.setServer("http://www.somewhere/api");
api.post(stuff, new Callback(){
void success(){
}
void fail(){
}
});
api.get(new Callback(){
void success(){
}
void fail(){
}
});
这样 GWT 库项目就可以在任何 HTML 项目中使用,而无需使其成为 GWT 应用程序。
如果可能的话,该 GWT 库的依赖项将编译到哪里?它将包含在单个 JavaScript (js) 文件中吗?
最佳答案
[2016 年编辑]
使用新 GWT (2.8.0) 的方法是使用 JsInterop
,请阅读 documentation API 。请注意,它仍处于 2.8.0-SNAPSHOT 版本中,但将在几周内发布。另外,2.7.0 中的 JsInterop 已被弃用并在 2.8 中删除,因此不要使用它。
[编辑结束]
除了编写 JSI 方法之外,还有两种简单的方法可以处理此问题。
1.- GwtExporter
您可能有兴趣阅读我几年前写的这篇文章:
https://code.google.com/p/gwtchismes/wiki/Tutorial_ExportingGwtLibrariesToJavascript_en
它使用 gwt-exporter,您可以查看使用此方法的几个项目:
JsUpload 是 gwtUpload 的一个端口: https://code.google.com/p/gwtupload/wiki/JsUpload_Documentation https://github.com/manolo/gwtupload/tree/master/jsupload
GwtChismes 是一个非常旧的库,现在无用,不再维护,但它也被导出 https://code.google.com/p/gwtchismes/wiki/JsChismes_Documentation https://code.google.com/p/gwtchismes/source/browse/#svn%2Ftrunk%2FGWTChismes%2Fsrc%2Fjschismes
我还做了一些将 gwtquery 导出到 js (jsQuery) 的实验: https://code.google.com/p/gwtquery/wiki/JsQuery
Chronscope 是另一个使用这种方法的 gwt 库 https://code.google.com/p/gwt-chronoscope/wiki/JavaScriptAPI
2.- JsInterop
如果您想尝试新的东西,您可以阅读 GWT-2.7 中的 JsInterop 测试功能,该功能将在 GWT-3.0 中完全发挥作用。
它允许你将java类导出到JS。您必须使用 -XjsInteropMode JS
和一些注释。
现在没有那么多文档,但是有一个解释 API 的文档,以及一个有趣的演示。
https://docs.google.com/document/d/1tir74SB-ZWrs-gQ8w-lOEV3oMY6u6lF2MmNivDEihZ4/edit
关于java - 将 GWT 库编译为 JavaScript 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27726805/