SmartGWT - 如何为smartGWT UI对话框创建.jar文件

时间:2012-05-16 05:41:41

标签: jar smartgwt

我创建了一个显示UI对话框的SmartGWT应用程序(在对话框上显示一些控件)。

此对话框应用程序经过测试并运行良好,但现在我必须将其作为jar文件分发,以便其他SmartGWT项目可以将其用作窗口小部件。

我正在寻找一种方法,如何将此组件“RemoteFileDialog”作为jar文件发布,以便任何其他SmartGWT Web应用程序都可以使用它来显示文件浏览器。有没有详细的文件/参考资料我可以完全理解?

我使用jar cvf ...命令为此对话框应用程序创建了jar文件。

当我在目标smartGwt示例项目中使用此.jar时,它无法找到.jar中包含的类

可以肯定的是,我在日食中做了以下步骤。

  1. 通过“添加外部罐子”

  2. 添加了jar来构建路径
  3. 模块继承: 更改为gwt.xml文件

  4. 3 gwtc是否测试模块是否正确继承。 GWT编译没有警告或错误。

    但是,当我尝试在下面给出的测试代码中创建一个对话框类的实例(jar文件的一部分)时,eclipse无法识别或提示我添加所需的导入,就像它对所有人一样其他jar文件。 代码:

    即使我自己手动添加了import语句,它仍会在这些行中产生编译错误。

    我想以正确的方式从SmartGWT项目创建.jar文件,以便它可以在另一个smartGWT项目中用作.jar文件。

    非常感谢任何帮助和线索..

    这是我的环境,如果有意义的话!:

    SmartGWT 3.0 GWT 2.4 浏览器:Firefox 7.0.1 开发环境:Ubuntu11.10上的Eclipse Indigo

    的问候, RV

    添加.gwt.xml文件的内容......

    这个用于窗口小部件项目文件:RemoteFileBrowser.gwt.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <module rename-to='remotefilebrowser'>
    <!-- Inherit the core Web Toolkit stuff.                        -->
    <inherits name='com.google.gwt.user.User'/>
    
    <!-- Inherit the default GWT style sheet.  You can change       -->
    <!-- the theme of your GWT application by uncommenting          -->
    <!-- any one of the following lines.                            -->
    <inherits name='com.google.gwt.user.theme.clean.Clean'/>
    <!-- <inherits name='com.google.gwt.user.theme.standard.Standard'/> -->
    <!-- <inherits name='com.google.gwt.user.theme.chrome.Chrome'/> -->
    <!-- <inherits name='com.google.gwt.user.theme.dark.Dark'/>     -->
    
    <!-- Other module inherits                                      -->
    <inherits name='com.smartgwt.SmartGwt'></inherits>
    <inherits name="com.smartgwt.tools.SmartGwtTools"></inherits>
    <!-- Specify the app entry point class.                         -->
    <entry-point class='com.comviva.remotefilebrowser.client.RemoteFileBrowser'/>
    
    <!-- Specify the paths for translatable code                    -->
    <source path='client'/>
    <source path='shared'/>
    
    </module>
    

    这个用于使用widget的主机项目:file:GWTSample.gwt.xml

        <?xml version="1.0" encoding="UTF-8"?>
        <module rename-to='gwtsample'>
    <!-- Inherit the core Web Toolkit stuff. -->
    <inherits name='com.google.gwt.user.User' />
    
    <!-- Inherit the default GWT style sheet. You can change -->
    <!-- the theme of your GWT application by uncommenting -->
    <!-- any one of the following lines. -->
    <inherits name='com.google.gwt.user.theme.clean.Clean' />
    <!-- <inherits name='com.google.gwt.user.theme.standard.Standard'/> -->
    <!-- <inherits name='com.google.gwt.user.theme.chrome.Chrome'/> -->
    <!-- <inherits name='com.google.gwt.user.theme.dark.Dark'/> -->
    <inherits name="com.smartgwt.SmartGwt" />
    <!-- <inherits name="com.comviva.scheduler.SchedulerWidget"></inherits> -->
    <inherits name="com.comviva.remotefilebrowser.RemoteFileBrowser"></inherits>
    <inherits name="com.smartgwt.tools.SmartGwtTools"></inherits>
    
    <!-- Other module inherits -->
    
    <!-- Specify the app entry point class. -->
    <entry-point class='com.rv.gwtsample.client.GWTSample' />
    
    <!-- Specify the paths for translatable code -->
    <source path='client' />
    <source path='shared' />
    
        </module>
    

2 个答案:

答案 0 :(得分:0)

RemoteFileBrowser.gwt.xml中,您可以使用以下命令将模块重命名为更简单的名称:

<module rename-to='com.foo.MyModule'>

然后,当在另一个项目中包含这个“小部件”时,你会这样做:

<inherits name="com.foo.MyModule" />

点击此链接了解详情:https://developers.google.com/web-toolkit/doc/latest/DevGuideOrganizingProjects

请注意,模块名称区分大小写

答案 1 :(得分:0)

经过一番努力,我可以找到解决方案,在下面发帖,因为这可能对像我这样的其他新手有用:)

  • 构建jar文件的方法不正确。
  • 由于我手动创建了一个.jar文件(不是通过eclipse),因此它没有在com / comviva / remotefilebrowser / * .class中添加我的RemoteFileDialog的.class文件。相反,类文件是从诸如/ war / WEB-INF / classes。
  • 之类的位置添加的
  • 由于这个原因,即使导入.jar也无法识别。

我现在使用eclipse导出选项创建.jar并选择要包含的文件/资源​​列表。