Springboot WebJar打包及使用实现流程解析
作者:云淡风轻博客 发布时间:2023-06-21 22:08:00
前言
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
来源:https://www.cnblogs.com/csnjava/p/13348092.html
猜你喜欢
- @PropertySource读取配置文件通过@Value参数注入有参数文件如下test.propertiesproject.author=
- 规则1(无继承情况下):对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量、静态初始化块)>(变量、
- 对于自定义注解这里就不唠叨了,百度一大堆,这里有我一个自定义注解@Retention(RetentionPolicy.RUNTIME)@Ta
- 本文实例讲述了Android游戏开发学习之引擎用法。分享给大家供大家参考。具体如下:汽车引擎是汽车的心脏,其决定了汽车的性能和稳定性,是人们
- BigDecimal的舍入模式(RoundingMode)BigDecimal.divide方法中必须设置roundingMode,不然会报
- 这个例子需要使用google的开源项目zxing的核心jar包core-3.2.0.jar可以百度搜索下载jar文件,也可使用maven添加
- 一、继承1、继承的概念继承机制:是面向对象程序设计是代码可以复用的最重要手段,允许程序员在保持原有类特性的基础上进行扩展,增加新的功能,产生
- 承接上文 传送门一.完善登录功能按照常理,只有登陆过后才能进入首页,若没有登陆则应当直接跳转到登陆页面,这样的场景不就完美契合过滤器的功效吗
- 文章来源:互联网 作者:skywoo/CSDNWindows2000+Apache2.0.48+resin2.1.6 &nbs
- 前言这篇文章主要是从类中static修饰的成员变量,static修饰的成员方法这两个方面来讲解static,static成员变量的初始化会在
- mybatis-plus-generator + clickhouse 自动生成代码依赖<!--> mybatis-plus &
- 前言:sleep 方法和 wait 方法都是用来将线程进入休眠状态的,并且 sleep 和 wait 方法都可以响应 interrupt 中
- 工作中一直都是一个人奋战一人一个项目,使用maven管理,看这个也挺好,但是总感觉没有充分发挥maven的功能,于是研究了一下这个,网上关于
- 最近过年发红包拜年成为一种新的潮流,作为程序猿对算法的好奇远远要大于对红包的好奇,这里介绍一种自己想到的一种随机红包分配策略,还请大家多多指
- 本文实例讲述了Java单例模式。分享给大家供大家参考,具体如下:在实际开发的时候会有一些需求,在某个类中只能允许同时存在一个对象。这时就需要
- java读取文件内容,解析Json格式数据一、读取txt文件内容(Json格式数据) public static
- 0x01 新建SpringBoot项目1. 新建maven工程ps:在上一教程的基础上操作,就不用新建项目了,请参考文章:SpringBoo
- Kotlin基础教程之数据类型一切都是对象.在Kotlin中一切都是对象.Kotlin有一些基本类型Boolean,Byte,Shot,In
- 前言最近看了内部类后,总结一下,首先内部类嵌套在其他内部的类,根据出现的位置和关键字,可以分为以下四种类:成员内部类,静态内部类,方法内部类
- a)原理:每一趟从待排序的记录中选出最小的元素,顺序放在已排好序的序列最后,直到全部记录排序完毕。也就是:每一趟在n-i+1(i=1,2,…