代码之家  ›  专栏  ›  技术社区  ›  Boden

Eclipse3.4GWT1.6项目-如何从其他项目引用源代码?

  •  19
  • Boden  · 技术社区  · 17 年前

    我在Eclipse3.4中有一个GWT1.6项目,正在尝试引用另一个源代码( )我的工作区中的项目。我已将项目添加到构建路径,但无法在托管模式下运行应用程序。当我这样做时,我会得到一个“没有可用的源代码”错误。

    我做了一些搜索和阅读,并尝试了其他人建议的一些事情(包括从依赖项目创建一个jar并链接到它),但坦率地说,没有任何效果。

    如果你真的这样做了,你能帮我做一个简单的一步一步的设置吗?我真的很感激,谢谢!

    8 回复  |  直到 17 年前
        1
  •  17
  •   Upgradingdave    16 年前

    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>
    

    <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项目的类路径中。

    祝你好运

        2
  •  3
  •   Fabrice Dewasmes    15 年前

    我知道这篇文章很老,但由于我在这个问题上花了很多时间,最终找到了解决方法,我想我可以分享一下答案:

    创建启动配置后,打开它运行>运行配置。。。 转到类路径选项卡并选择用户条目。添加高级>文件夹,然后选择其他模块项目的源文件夹。如果您在src/main/resources文件夹中分离了模块conf文件,那么您也必须添加它。

    应该有用。

        3
  •  1
  •   Steve Armstrong    17 年前

    GWT项目中的客户端代码(客户端包下的类)不能引用任何不在GWT模块中的类。

    如果您想从GWT项目的客户端代码中引用另一个项目中的代码,则需要:

    <

        4
  •  1
  •   Bert van Brakel Bert van Brakel    17 年前

    Boden:将以下内容添加到模块文件中

    <source path=""></source>
    

    除了您的其他来源,例如:

    <source path=""></source>
    <source path="com.acme.otherpackage"></source>
    

    那么编译器就不会抱怨了。

    至少我是这样解决的。不确定使用path=”“是否允许包含所有内容,我假设它是未指定源时的默认值。

        5
  •  1
  •   ouba64    9 年前

    这是斯文·布施贝克(必须是挪威人,哈哈!)提出的解决你问题的绝妙方案,对我有用!

    在处理几个大型项目(在Eclipse中)时,通过com库共享和重用代码会更方便,当然也更有效。虽然这些都处于早期阶段,但它们需要进行大量更改,因此,每次更新库时,都可以方便地链接项目,而不是创建新的jar。 不幸的是,Eclipse中的Java开发标准方法并不像普通的旧Java项目那样直接有效,它总共需要三个步骤:

    1. 将库项目链接到所有相关项目(项目
    2. 然后,添加库的客户端代码(通过将其添加为 例如 项目,在此之前是它所在的包。
    3. 通过链接源文件夹将代码添加到项目中。 不幸的是,如果您不想编写Ant,这是必需的 我不喜欢使用这样的脚本,因为如果 如果您每次进行更改时都要运行它,那么您将在 让我们走一条方便、自动的道路吧。

      • 右键单击文件夹,生成路径->用作源文件夹。完成。 令人惊讶的是,用于Eclipse的GWT插件不支持项目链接,因此所有的引用都需要显式地进行,否则您将得到以下许多结果:ClassNotFoundException。

        6
  •  0
  •   Carnell    17 年前

    GWT不知道其他代码,因为它不在项目的客户机目录中。您需要将其他代码的源路径添加到.gwt.xml文件中。只是将其添加到xml中,如下所示

    <source path="common" />
    

    常见的 是此示例的额外代码所在的目录。

    查看 XML元素引用 本节 doc

        7
  •  0
  •   Darren user513543    14 年前

    在gwt项目中,转到属性、Java构建路径、源代码,单击“链接源代码”,并指向您希望包含的非gwt项目源代码包。

        8
  •  0
  •   Sid Datta    9 年前

    原因: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。

    我注意到的其他事情

    推荐文章