前言

  WebJar官网:https://www.webjars.org/,对于任何与Servlet 3兼容的容器,WEB-INF/lib目录中的webjar都会自动作为静态资源提供。这是因为WEB-INF/lib中的JAR中的META-INF/resources目录中的任何内容都会自动公开为静态资源。

  官网上面已经有很多热门webjar,但有时候还是不能满足我们的需要,我们需要自己打包WebJar,本文记录如何WebJar的打包、使用

  打包

  首先创建一个maven工程,干干净净什么都没有

  把一下常用的web资源(比如:jquery、bootstrap前端框架、layer弹出层、jqgrid分页插件)放在resources文件夹下面,为了更直观的区分,我们先新建一个plugin文件夹

  编写pom.xml,指定打包方式,以及构建工具

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <!-- 打包方式 -->
<packaging>jar</packaging> <groupId>cn.huanzi</groupId>
<artifactId>webjar</artifactId>
<version>1.0.1</version> <!-- 构建工具 -->
<build>
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<targetPath>META-INF/resources/</targetPath>
</resource>
</resources>
</build>
</project>

  打开maven工具栏,package打包

  打包成功

  target目录下面就会生成jar包

  jar包结构是这样子滴

  有了jar包后我们就可以引入jar使用这些web静态资源了,上传到maven私服使用maven引入或者直接引入jar文件都行

  使用

  首先需要引入jar,如果是直接把jar放在项目里面就不多说了直接复制进去就行,如果是要maven引入,则先需要把jar包发到maven私服,在pom中配置私服地址,然后引入

    <!-- 配置私服地址 -->
<repositories>
<repository>
<id>XXXXXXX</id>
<name>XXXXXX</name>
<url>XXXXXX</url>
</repository>
</repositories> <!-- 引入webjar -->
   <dependency>
<groupId>cn.huanzi</groupId>
<artifactId>webjar</artifactId>
<version>1.0.1</version>
</dependency>

  使用方式就跟我们使用resources下面的资源一样,我们看一下thymeleaf引入例子:

<!-- jquery -->
<script th:src="@{/plugin/jquery.min.js}"></script>

  总结

  使用WebJar有什么好处呢?

  1、打成jar包方便管理,统一资源版本,如需升级资源版本,修改webjar工程、升级版本号,重新打包上传maven私服即可,项目无需做修改

  2、减少项目大小,提高打包、部署项目是的效率,例如本例中:

             没打包之前 14.4MB                               打包之后 5.62MB,减少8.78MB

         

    如果使用maven引入,则一点空间都不占,项目大小减少14.4MB

WebJar的打包和使用的更多相关文章

  1. WebJar的打包和使用  

    前言 WebJar官网:https://www.webjars.org/,对于任何与Servlet 3兼容的容器,WEB-INF/lib目录中的webjar都会自动作为静态资源提供.这是因为WEB-I ...

  2. Maven 打成 Webjar的方法

    http://blog.csdn.net/sxdtzhaoxinguo/article/details/45666789 *************************************** ...

  3. Spring使用webjar

    注意事项 这玩意很简单,但是我们第一次搞就是搞不成功,为什么呢?因为我们都用的是idea或者eclipse编译.webjar只能在maven上才能打包,所以在使用时,记得maven-clean和mav ...

  4. SpringBoot笔记十三:引入webjar资源和国际化处理

    目录 什么是webjar 怎么使用webjar 国际化 新建国际化配置文件 配置配置文件 使用配置文件 我们先来看一个html,带有css的,我们就以这个为准来讲解. 资源可以去我网盘下载 链接:ht ...

  5. Android Studio 多个编译环境配置 多渠道打包 APK输出配置

    看完这篇你学到什么: 熟悉gradle的构建配置 熟悉代码构建环境的目录结构,你知道的不仅仅是只有src/main 开发.生成环境等等环境可以任意切换打包 多渠道打包 APK输出文件配置 需求 一般我 ...

  6. 【原创分享·支付宝支付】HBuilder打包APP调用支付宝客户端支付

    前言 最近有点空余时间,所以,就研究了一下APP支付.前面很早就搞完APP的微信支付了,但是由于时间上和应用上的情况,支付宝一直没空去研究.然后等我空了的时候,发现支付宝居然升级了支付逻辑,虽然目前还 ...

  7. 细说前端自动化打包工具--webpack

    背景 记得2004年的时候,互联网开发就是做网页,那时也没有前端和后端的区分,有时一个网站就是一些纯静态的html,通过链接组织在一起.用过Dreamweaver的都知道,做网页就像用word编辑文档 ...

  8. .NET Core 系列5 :使用 Nuget打包类库

    NuGet是个开源项目,项目包括 NuGet VS插件/NuGet Explorer/NuGetServer/NuGet命令行等项目,.NET Core项目完全使用Nuget 管理组件之间的依赖关系, ...

  9. Node-Webkit打包

    1.node-webkit是什么? NW.js is an app runtime based on Chromium and node.js. You can write native apps i ...

随机推荐

  1. HTML连载53-网易注册界面实战之content的头部、content注册信息

    一. 这次完成了content部分的右边图片以及content的top部分的边角填充 <!DOCTYPE html> <html lang="en"> &l ...

  2. php 判断空

    结果: 结论:$a != false 这种判断方式比empty() 速度更快

  3. idea 出现Can't load AMD 64-bit .dll on a IA 32-bit platform错误

    这个错误是在说无法在IA 32位平台上加载AMD 64位.dll,解决方法如下 下载安装64位的jdk(方法和安装32位的一致,可百度查阅相关资料) 按如下步骤配置

  4. AJAX-CORS 跨域

    1.CORS就是一套AJAX跨域问题的解决方案. 2.CORS的原理: CORS定义一种跨域访问的机制,可以让AJAX实现跨域访问. 3.CORS浏览器支持情况: Chrome 3+ Firefox ...

  5. 【Unity游戏开发】性能优化之在真机上开启DeepProfile与踩坑

    一.引子 最近马三入职了新公司,平时除了负责编辑器开发之外还要做一些游戏性能优化方面的工作.在这里首先给大家安利一下Unity官方的性能测试分析工具URP ,这个工具目前是免费,测试的过程中也不需要接 ...

  6. 压测 swoole_websocket_server 性能

    概述 这是关于 Swoole 入门学习的第十篇文章:压测 swoole_websocket_server 性能. 第九篇:Swoole Redis 连接池的实现 第八篇:Swoole MySQL 连接 ...

  7. 用深度学习做命名实体识别(二):文本标注工具brat

    本篇文章,将带你一步步的安装文本标注工具brat. brat是一个文本标注工具,可以标注实体,事件.关系.属性等,只支持在linux下安装,其使用需要webserver,官方给出的教程使用的是Apac ...

  8. 函数式接口 & lambda表达式 & 方法引用

    拉呱: 终于,学习jdk8的新特性了,初体验带给我的感觉真爽,代码精简的不行,可读性也很好,而且,spring5也是把jdk8的融入到血液里,总之一句话吧,说的打趣一点,学的时候自己难受,学完了写出来 ...

  9. C# 动态加载资源

    在xaml中控件通过绑定静态资源StaticResource来获取样式Style有多种方式,TextBlockStyle.xaml是一个ResourceDictionary,包含了所需样式 通过相对路 ...

  10. Python内部参数中对外部实参的影响

    无论函数传递的参数的可变还是不可变,只要针对参数使用赋值语句,会在函数内部修改局部变量的引用,不会影响到外部变量的引用,而如果传递的参数是可变类型,在函数内部使用方法修改了数据的内容,同样会影响到外部 ...