【问题标题】:GWT - including source files outside module's package hierarchyGWT - 包括模块包层次结构之外的源文件
【发布时间】:2014-03-16 06:35:12
【问题描述】:

我在 Eclipse 中有一个 GWT 项目,其 GWT 模块结构如下

com.foo.gwt -> Dashboard.gwt.xml
com.foo.gwt.client
com.foo.gwt.server

我有不同的包com.bar.baz1com.bar.baz2 等,我想将其内容包含在客户端代码中。所有文件都兼容GWT JAVA->JS转换。

问题在于 Dashboard.gwt.xml 中的 标记将路径视为相对于Dashboard.gwt.xml 的目录。所以我不能引用com.foo.gwt 层次结构之外的任何东西。

所以我在com.bar 中创建了一个新模块MyNewModule.gwt.xml,并使用标签中的相对路径包含baz1baz2 子包。最后我做了 Dashboard.gwt.xml 来继承新模块。

当我编译仪表板模块时这工作正常,但当我编译 MyNewModule 时失败。 这是因为 MyNewModule 中的一些类引用了 Dashboard 模块的类。

我尝试在 MyNewModule 中继承 Dashboard 模块。这会创建一个循环引用,但 GWT 不会抱怨它。一切正常,但我对循环引用感到不舒服。我不需要 MyNewModule,我所需要的只是一种从 Dashboard 模块层次结构之外的包中包含代码的方法。

我想知道为什么 GWT 不允许绝对源路径。

我错过了什么吗?

【问题讨论】:

    标签: gwt build build-process


    【解决方案1】:

    您不需要单独编译每个模块。当您编译 com.foo.gwt 项目时,GWT 编译器将在您的 com.foo.gwt.xml 文件中查找所有依赖项,并将编译您的 com.foo 和 com.bar.baz 的所有 .java 文件。 (和其他库)到 javascript。

    正如您所说,将 MyNewModule.gwt.xml 放入 com.bar.baz 项目并将其“继承”在您的 DashBoard.gwt.xml 文件中是正确的。您缺少的部分是使用 MyNewModule 项目制作一个 .jar 文件并放入 war/WEB-INF/lib 文件夹(只是 gwt.xml 文件和编译的 java 类)。

    【讨论】:

    • 是的,我注意到了。我有一个没有显式编译新模块的构建脚本,一切正常。当我为 Eclipse 安装 Google Plugin 时,它开始自动编译项目中的每个模块,这让我认为这是一个必不可少的过程。我不需要 jar,因为我不打算单独使用 MyNewModule,它是因为不允许使用绝对源路径而创建的。
    猜你喜欢
    • 1970-01-01
    • 2011-05-24
    • 2012-01-09
    • 1970-01-01
    • 2023-04-01
    • 2011-06-16
    • 2019-11-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多