Eclipse3.4GWT1.6项目-如何从其他项目引用源代码?
我在Eclipse3.4中有一个GWT1.6项目,我正在尝试引用我工作区中另一个(非GWT)项目的源代码。我已将项目添加到构建路径,但无法在托管模式下运行应用程序。当我这样做时,我会得到一个“没有可用的源代码”错误 我做了一些搜索和阅读,并尝试了其他人建议的一些事情(包括从依赖项目创建一个jar并链接到它),但坦率地说,没有任何效果Eclipse3.4GWT1.6项目-如何从其他项目引用源代码?,eclipse,gwt,Eclipse,Gwt,我在Eclipse3.4中有一个GWT1.6项目,我正在尝试引用我工作区中另一个(非GWT)项目的源代码。我已将项目添加到构建路径,但无法在托管模式下运行应用程序。当我这样做时,我会得到一个“没有可用的源代码”错误 我做了一些搜索和阅读,并尝试了其他人建议的一些事情(包括从依赖项目创建一个jar并链接到它),但坦率地说,没有任何效果 如果你真的这样做了,你能帮我做一个简单的一步一步的设置吗?我真的很感激,谢谢 GWT不知道其他代码,因为它不在项目的客户机目录中。您需要将其他代码的源路径添加到.g
如果你真的这样做了,你能帮我做一个简单的一步一步的设置吗?我真的很感激,谢谢 GWT不知道其他代码,因为它不在项目的客户机目录中。您需要将其他代码的源路径添加到.gwt.xml文件中。只是将其添加到xml中,如下所示
<source path="common" />
common是本例额外代码所在的目录
查看本部分的XML元素引用部分GWT项目中的客户端代码(客户端包下的类)不能引用任何不在GWT模块中的类 如果您想从GWT项目的客户端代码中引用另一个项目中的代码,则需要:
- 确保它是“GWT安全的”,这意味着它不会引用任何没有被GWT()模拟的JRE类,也不会引用任何引用没有被模拟的JRE类的类
- 确保所有引用的类都在GWT模块中。这意味着将MyOtherProject.gwt.xml文件放在其他项目中,所有引用的类都必须位于客户机子包下
- 使您的GWT项目从其他项目继承。因此,将以下内容添加到GWT项目的GWT.xml模块文件中:
Boden:将以下内容添加到模块文件中
<source path=""></source>
除了您的其他来源,例如:
<source path=""></source>
<source path="com.acme.otherpackage"></source>
那么编译器就不会抱怨了
至少我是这样解决的。不确定使用path=”“是否允许包含所有内容,我假设在未指定源时它是默认值。我有2个Eclipse项目。一个是gwt项目,另一个不是。以下是适合我的目录结构:
workspace
-- gwt-project
-- src/main/java
-- com.gwt.GwtProjectModule
-- GwtProjectModule.gwt.xml
-- non-gwt-project
-- src/main/java
-- com.nongwt.package.that.contains.source.you.need
-- nongwt.gwt.xml
-- com.nongwt.package.that.contains.source.you.need.client
nongwt.gwt.xml告诉gwt查看“客户端”包的内部,下面是它的外观:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 1.7.0//EN" "http://google-web-toolkit.googlecode.com/svn/tags/1.7.0/distro-source/core/src/gwt-module.dtd">
<module rename-to='nongwt'>
<inherits name='com.google.gwt.user.User' />
<source path="client" />
</module>
然后,GwtProjectModule.gwt.xml可以从nongwt继承源代码。以下是GwtProjectModule.gwt.xml内部的相关行:
<inherits name="com.nongwt.package.that.contains.source.you.need.nongwt" />
确保在eclipse中的gwt项目的类路径中包含非gwt项目。这是正常的训练;右键单击gwt项目,选择属性,选择“Java构建路径”,单击“项目”选项卡和“非gwt项目”
或者,除了在gwt项目的类路径中包含非gwt项目作为项目引用之外,还可以jar非gwt--project的内容,确保将源代码包含在jar中,然后将jar包含在gwt项目的类路径中
祝你好运 在您的gwt项目中,转到属性、Java构建路径、源代码,单击“链接源代码”,并指向您希望包含的非gwt项目源代码包。我知道这篇文章很老,但由于我在这个问题上花了很多时间,最终找到了解决方法,我想我可以分享一下答案: 创建启动配置后,打开它运行>运行配置。。。 转到类路径选项卡并选择用户条目。添加高级>文件夹并选择其他模块项目的源文件夹。如果您在src/main/resources文件夹中分离了模块conf文件,那么您也必须添加它
应该有用 Edit:找到eclipse修复程序。运行config>Classpath>Advanced>addfolder>otherproject/src 原因:Eclipse添加了导出项目的bin文件夹。GWT需要src文件夹 详细阐述我的评论 我正在EclipseNeon上使用GWT2.8,Java1.8.092。在eclipse中引用另一个项目无法启动devmode,因为它找不到来自另一个项目的引用文件的源 工作内容: 完全切换到“ant devmode”。对build.xml进行了以下更改:
<target name="gwtc" ...>
<java ...>
<classpath>
<pathelement location="src"/>
<pathelement location="../otherproject/src"/><!-- Added -->
...
...
<target name="devmode" ...>
<java ...>
<classpath>
<pathelement location="src"/>
<pathelement location="../otherproject/src"/><!-- Added -->
...
...
现在使用“ant”进行生产构建,或者使用“ant devmode”启动devmode
我注意到的其他事情
这是斯文·布施贝克(必须是挪威人,哈哈!)提出的解决你问题的绝妙方案,对我有用 在Eclipse中处理几个大型项目时,通过常用库共享和重用代码非常方便,当然也更有效。虽然这些还处于早期阶段,但它们需要进行大量更改,因此,在库每次更新时链接项目而不是创建新的jar是很方便的。 不幸的是,Eclipse中Java开发的这种标准方法并不像普通的旧Java项目那样直接有效,它总共需要三个步骤: