如何在GWT(Google Web Toolkit)项目中包含外部jar?
我有一个名为“xxx.jar”的外部jar文件。 我在我的GWT项目中使用“xxx.jar”。
当我尝试在Ant中构建我的项目的JavaScript版本时,在我使用xxx的每个位置出现以下类型的错误之一。 在Ant中执行“gwtc”任务时出现此类错误,javac编译过程进行得很顺利。
[错误]第45行:没有源代码可用于org.xxx.ObjectName类型; 你忘了继承一个必需的模块吗?
好吧,很显然,它无法看到/使用xxx.jar。 然而,解决这个问题在GWT中并不像在“普通”java中那么简单。 从互联网ref1,我收集到,我需要
那么......我到底做了什么? 什么是我需要生成的这个gwt.xml文件(第2步)? 我在哪里放源目录,以及如何引用它(步骤1)? 在GWT中添加外部jar文件所需的机械步骤究竟是什么?
由于您的GWT源代码必须编译为JavaScript以在客户端浏览器上工作,因此源代码应该可供GWT编译器使用。
查看Lars Vogels的文章,在他的教程中简要介绍了这一点
这也是有道理的,由于Google纲要的限制,即使您可以获取源代码,此JAR中的所有代码都可能无法编译为GWT javascript。
GWT仅支持Java 2 Standard和Enterprise Edition库中可用类的一小部分,因为这些库非常大,并且依赖于Web浏览器中不可用的功能。 要找出核心Java运行时包支持哪些类和方法,请参阅GWT JRE Emulation Reference
Robert Hanson一步一步地介绍如何打包GWT组件
祝你好运...
你应该在src / com.myproject.blah下有一个项目xml文件(我的名字叫做Setup.gwt.xml),它看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='setup'>
<!-- Inherit the core Web Toolkit stuff. -->
<inherits name='com.google.gwt.user.User'/>
<!-- Inherit the default GWT style sheet. You can change -->
<!-- the theme of your GWT application by uncommenting -->
<!-- any one of the following lines. -->
<inherits name='com.google.gwt.user.theme.standard.Standard'/>
<!-- <inherits name='com.google.gwt.user.theme.chrome.Chrome'/> -->
<!-- <inherits name='com.google.gwt.user.theme.dark.Dark'/> -->
<!-- Other module inherits -->
<inherits name="com.some.external.library.Utils"/>
<!-- Specify the app entry point class. -->
<entry-point class='com.myproject.blah.client.Setup'/>
<stylesheet src="MyStyle.css"/>
</module>
在build.xml文件中有一部分:
<target name="libs" description="Copy libs to WEB-INF/lib">
<mkdir dir="war/WEB-INF/lib" />
<copy todir="war/WEB-INF/lib" file="${gwt.sdk}/gwt-servlet.jar" />
<copy todir="war/WEB-INF/lib" file="/path/to/external/lib.jar" />
其中lib.jar包含从gwt.xml文件引用的com.some.external.library.Utils源代码。
至于(3),如果外部库只使用GWT编译器知道的那个Java子集,那么你很好。
我不是100%肯定上述是正确的,但它确实对我有用。
链接地址: http://www.djcxy.com/p/46907.html上一篇: How to include a external jar in a GWT (Google Web Toolkit) project?
下一篇: How do I Add an Event Handler To the RowUpdated event in a table adapter