如何使GWT解耦组件

时间:2015-03-02 23:13:27

标签: java gwt components

我正在寻找一种方法来制作解耦的GWT组件。这样我就可以将它集成到其他不同的GWT组件或项目中。

例如: 我有一个自定义的GWT树小部件(自己的css),现在我想通过在项目中添加.jar来在其他GWT应用程序中使用这个Tree小部件。

最好的方法是什么?

4 个答案:

答案 0 :(得分:1)

编写可重用的GWT库(JAR)比继承模块更复杂,因为您的高级项目(使用该库)需要访问类源,而不是编译代码。

是否创建实际的实用程序“模块”(继承)取决于您。 GWT不要求这样做。我只在顶层定义模块。我的实用程序JAR只是类的集合,就像它们在没有GWT的普通Java中一样。

  1. 将该代码:Java类,图像和其他资源移动到一个单独的项目/模块中,构建一个单独的JAR。

  2. 将它放在您的库JAR Maven文件中:

    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>x.y.z/**/*.java</include>
                </includes>
            </resource>
        </resources>
    
  3. 如果您拥有图像和其他资源,请不要忘记 - 不仅仅是“* .java”。请记住,如果您正在分发该模块,那就是您的源文件,因此请尽可能限制,并且不要包含非GWT内容。

    1. 在主项目的Maven依赖项中包含JAR。而已。没有弄乱GWT模块。

    2. 编辑:确保在实用程序JAR中使用与主(消耗)GWT项目中相同的程序包结构。或者将这些包添加到模块声明中。

    3. 您的Maven GWT插件应保留在主模块中,而不是实用程序JAR。

答案 1 :(得分:0)

这将根据要求而有所不同,如果您正在使用Maven那么

  • 按照gwt打包结构创建maven项目并创建所有自定义小部件或组件
  • 创建主项目并将上述项目的依赖项添加到此项目中,并重新使用自定义组件(树窗口小部件)。

如果您没有使用Maven,那么正常的gwt应用程序

  • 创建动态Web应用程序,遵循gwt打包结构并创建所有自定义窗口小部件,即结果.jar项目
  • 创建主项目并转到Java构建路径,添加外部JARS(将上述项目.jar添加为外部JARS)。

希望这能解决您的问题

答案 2 :(得分:0)

您可以将组件创建为独立的gwt模块,然后将其导出为jar文件,并在任何其他gwt项目中轻松使用。 网上有很多这样的样本。

答案 3 :(得分:0)

您可以将GWT模块包含常用小部件放入单独的jar中,并在需要的地方重用此jar。

我建议你使用这个maven插件

QSerialPort

它可以帮助您与maven一起创建GWT模块

Maven是处理java中项目依赖项的最佳方法之一。

创建jar后,您可以将此jar包含在项目所在的类路径中。

为了使用外部GWT模块的小部件,你还必须从这个模块声明gwt依赖

<inherits name="gwtXmlPackageOfYourExternalModule.YourModuleName"/>

在项目的.gwt.xml中