3.5.17.1. 使用 WebJars

此方法允许使用打包到 JAR 文件中并在 Maven Central 上部署的各种 JS 库。要在应用程序中使用来自 WebJar 的组件需要执行以下步骤:

  • 添加依赖到 web 模块的 compile 方法:

    compile 'org.webjars.bower:jrcarousel:1.0.0'
  • 创建 web-toolkit 模块。

  • 创建一个客户端 GWT 部件(widget)类并实现用于创建组件的 JSNI 方法。

  • 使用 @WebJarResource 注解创建服务端组件类。

    这个注解只能用于 ClientConnector 继承者(通常是来自 web-toolkit 模块的 UI 组件类)。

    @WebJarResource 注解值(或资源定义) 应使用下面的格式之一:

    1. <webjar_name>:<sub_path>,例如:

      @WebJarResource("pivottable:plugins/c3/c3.min.css")
    2. <webjar_name>/<resource_version>/<webjar_resource>,例如:

      @WebJarResource("jquery-ui/1.12.1/jquery-ui.min.js")

    注解值可以包含一个或多个 WebJar 资源字符串定义,多个资源使用字符串数组表示:

    @WebJarResource({
            "jquery-ui:jquery-ui.min.js",
            "jquery-fileupload:jquery-fileupload.min.js",
            "jquery-fileupload:jquery-fileupload.min.js"
    })
    public class CubaFileUpload extends CubaAbstractUploadComponent {
        ...
    }

    WebJar 版本不是必须的,因为 Maven 版本解析策略将自动使用高版本的 WebJar。

    或者,可以在 VAADIN/webjars/ 中指定一个目录来提供静态资源。这样,可以通过在此目录中放入新版本的资源来覆盖 WebJar 资源。要设置路径,请使用 @WebJarResource 注解的 overridePath 属性,例如:

    @WebJarResource(value = "pivottable:plugins/c3/c3.min.css", overridePath = "pivottable")
  • 将新组件添加到界面。