我正在寻找一种方法来制作解耦的GWT组件。这样我就可以将它集成到其他不同的GWT组件或项目中。
例如:
我有一个自定义的GWT树小部件(自己的css),现在我想通过在项目中添加.jar来在其他GWT
应用程序中使用这个Tree小部件。
最好的方法是什么?
答案 0 :(得分:1)
编写可重用的GWT库(JAR)比继承模块更复杂,因为您的高级项目(使用该库)需要访问类源,而不是编译代码。
是否创建实际的实用程序“模块”(继承)取决于您。 GWT不要求这样做。我只在顶层定义模块。我的实用程序JAR只是类的集合,就像它们在没有GWT的普通Java中一样。
将该代码:Java类,图像和其他资源移动到一个单独的项目/模块中,构建一个单独的JAR。
将它放在您的库JAR Maven文件中:
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>x.y.z/**/*.java</include>
</includes>
</resource>
</resources>
如果您拥有图像和其他资源,请不要忘记 - 不仅仅是“* .java”。请记住,如果您正在分发该模块,那就是您的源文件,因此请尽可能限制,并且不要包含非GWT内容。
在主项目的Maven依赖项中包含JAR。而已。没有弄乱GWT模块。
编辑:确保在实用程序JAR中使用与主(消耗)GWT项目中相同的程序包结构。或者将这些包添加到模块声明中。
您的Maven GWT插件应保留在主模块中,而不是实用程序JAR。
答案 1 :(得分:0)
这将根据要求而有所不同,如果您正在使用Maven那么
如果您没有使用Maven,那么正常的gwt应用程序
希望这能解决您的问题
答案 2 :(得分:0)
您可以将组件创建为独立的gwt模块,然后将其导出为jar文件,并在任何其他gwt项目中轻松使用。 网上有很多这样的样本。
答案 3 :(得分:0)
您可以将GWT模块包含常用小部件放入单独的jar中,并在需要的地方重用此jar。
我建议你使用这个maven插件
它可以帮助您与maven一起创建GWT模块
Maven是处理java中项目依赖项的最佳方法之一。
创建jar后,您可以将此jar包含在项目所在的类路径中。
为了使用外部GWT模块的小部件,你还必须从这个模块声明gwt依赖
<inherits name="gwtXmlPackageOfYourExternalModule.YourModuleName"/>
在项目的.gwt.xml中