我有一个名为“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文件所需的机械步骤究竟是什么?
答案 0 :(得分:4)
因为必须将GWT源编译为JavaScript以在客户端浏览器上工作,所以GWT编译器可以使用源代码。
在他的教程
中查看Lars Vogels article的简要部分这也是有道理的,因为Google Outline的限制,即使你可以获得源代码,这个JAR中的所有代码都可能无法编译为GWT javascript。
GWT只支持一小部分 Java 2中提供的类 标准版和企业版 库,就像这些库一样 相当大,依靠功能 在网络中不可用 浏览器。要找出究竟是哪个 支持类和方法 核心Java运行时包,请参阅 GWT JRE Emulation Reference
Robert Hanson在how to package GWT components
上逐步提供祝你好运......
答案 1 :(得分:0)
您应该在src / com.myproject.blah(我的名为Setup.gwt.xml)下有一个项目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)点,如果extrnal lib只使用GWT编译器知道的那个Java子集,那么你很好。
我不是100%确定以上是正确的,但它似乎对我有用。