代码之家  ›  专栏  ›  技术社区  ›  Aaron Digulla

如何编译没有入口点的模块?

  •  6
  • Aaron Digulla  · 技术社区  · 15 年前

    我有一个用于GWT的实用模块,它没有UI(因此,没有继承自 com.google.gwt.core.client.EntryPoint . 当我试图用GWT 1.7.1编译这个模块时,我得到了这个错误:

    [ERROR] Module has no entry points defined
    

    如何消除此错误?我真的需要定义一个虚拟入口点吗?谷歌是如何编译自己的实用程序模块的????

    5 回复  |  直到 14 年前
        1
  •  5
  •   David Nouls    15 年前

    公用事业JAR不需要由GWT编译。

    如果您只想将此作为其他GWT应用程序中的一个库重用,那么您只需在一个jar中将.class和.java文件挂起,并确保您有一个.gW.xml,说明了客户端源在哪里。如果您遵循约定(客户机中的客户机类),那么您就可以摆脱这种束缚,否则您需要为客户机包指定一个标记。

    然后确保在要编译入口点的项目中继承这个.gwt.xml。

        2
  •  3
  •   rustyshelf    15 年前

    不,你不需要入口点。以下是我的一个模块没有的示例:

    <?xml version="1.0" encoding="UTF-8"?>
    <module>
        <source path="grid" />
        <inherits name="com.google.gwt.user.User"/>
    </module>
    

    简而言之,您不需要在模块中编译代码。GWT只需要它们作为源代码。当您编译主模块(带有入口点的模块)时,它使用您在.gwt.xml文件中继承的任何其他模块的源代码来编译整个项目。

        3
  •  0
  •   Aaron Digulla    15 年前

    我正在使用 gwt-maven-plugin Maven2插件来编译我的代码。我从旧版本的 maven-googlewebtoolkit2-plugin 插件。对于旧插件,我必须指定哪些模块是这样的入口点:

                    <compileTargets>
                        <param>com.project.module.Module</param>
                    </compileTargets>
    

    对于新的插件,它是

                    <module>com.project.module.Module</module>
    

    由于插件找不到要编译的模块,它搜索“*.gwt.xml”并将所有模块编译为“ui模块”(必须有入口点)。

        4
  •  0
  •   LH.    15 年前

    我们有一个实用程序模块,它构造和处理一些常见的UI元素,以及一组javascript/json常见任务。

    看起来我们所做的(也从totsp插件迁移到了codehaus插件中)是在util模块中包含一个入口点;它只是空的。(包括“有意禁止操作”的评论)。

    然后pom只是把这个东西当作依赖项。

        5
  •  0
  •   NIclas Lindbegr    14 年前

    如果使用EclipseGWT插件,只需从编译前弹出的模块列表中删除没有入口点的模块即可。