SpringBoot WebJars统一管理静态资源 SpringBoot使用WebJars统一管理静态资源的方法
yizhiwazi 人气:0传统管理静态资源主要依赖于复制粘贴,不利于后期维护,为了让大家往后更舒心,让WebJars给静态资源来一次搬家革命吧!!
学习目标
简单两步!快速学会使用WebJars统一管理前端依赖。
快速查阅
源码下载:SpringBoot Webjars Learning
使用教程
一、引入相关依赖
在 WebJars官网 找到项目中需要的依赖,例如在项目中引入jQuery、BootStrap前端组件等。例如:
- 版本定位工具:webjars-locator-core
- 前端组件:jquery 、bootstrap
<dependency><!--Webjars版本定位工具(前端)--> <groupId>org.webjars</groupId> <artifactId>webjars-locator-core</artifactId> </dependency> <dependency><!--Jquery组件(前端)--> <groupId>org.webjars</groupId> <artifactId>jquery</artifactId> <version>3.3.1</version> </dependency>
二、访问静态资源
在浏览器访问静态资源:
快速访问:http://localhost:8080/webjars/jquery/jquery.js (推荐)
快速访问:http://localhost:8080/webjars/jquery/3.3.1/jquery.js
新手提问:
有小伙伴可能疑问,既然SpringBoot天然支持WebJars的静态资源访问,为什么还要额外添加定位工具webjars-locator-core呢?
快速答疑:
主要是为了解决访问WebJars静态资源时必须携带版本号的繁琐问题。举个例子,某项目准备将BootStrap 3.3.x 升级到 4.x 大版本,此时除了在POM文件调整之外,还需要大面积的在页面中调整因为版本号变更引起问题的路径,而使用定位器之后无需输入版本号自动定位。
总结
使用WebJars对前端依赖进行统一管理有什么好处呢?
1、静态资源版本化
传统的静态资源需要自行维护,资源种类繁多,使得项目后期越来越臃肿,维护版本升级也变得困难,而使用WebJars方式进行管理后,版本升级问题迎刃而解。
2、提升编译速度
经测试,使用WebJars的方式管理依赖可以给项目的编译速度带来2-5倍的速度提升,还在犹豫的小伙伴快点尝试起来吧!
3、在WebJars官方找不到自己想要的依赖怎么办?
解决办法:将下载好的静态资源目录发布到公司私服仓库即可。
例如:新建一个SpringBoot项目,手工创建目录 META-INF/resources/ ,将静态资源完整复制进去,然后发布公司Maven私服即可。当然,这只是简洁做法,如果想按照打造标准的WebJars资源请继续看下方。
4、将静态资源发布成标准的Webjars格式怎么弄?
解决办法:以Metronic为例 发布标准的webjars 资源到公司私服。
WebJars发布流程:
1、新建SpringBoot工程 然后在src\main\resources\ 新建目录 META-INF\resources\webjars\metronic 重点来了 这里4.1.9 必须跟POM文件的<version>4.1.9</version>保持一致。
2、修改POM文件 填写项目信息和公司私服地址。
<?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> <!--项目信息--> <groupId>org.webjars</groupId> <artifactId>metronic</artifactId> <version>4.1.9</version> <packaging>jar</packaging> <name>metronic</name> <description>metronic</description> <!--维护信息--> <developers> <developer> <name>socks</name> <email>https://github.com/yizhiwazi</email> </developer> </developers> <!--发布地址--> <distributionManagement> <repository> <id>xx-repo</id> <!--这里替换成公司私服地址--> <url>http://127.0.0.1:8088/nexus/content/repositories/thirdparty/</url> </repository> <snapshotRepository> <id>xx-plugin-repo</id> <!--这里替换成公司私服地址--> <url>http://127.0.0.1:8088/nexus/content/repositories/thirdparty/</url> </snapshotRepository> </distributionManagement> </project>
3、在本地MAVEN的配置文件指定公司私服的账号密码。
<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <localRepository>D:\dev\mvnrepository</localRepository> <mirrors> <!-- 阿里云仓库 --> <mirror> <id>aliyun</id> <mirrorOf>central</mirrorOf> <name>aliyun-all</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </mirror> <!-- 中央仓库1 --> <mirror> <id>repo1</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://repo1.maven.org/maven2/</url> </mirror> <!-- 中央仓库2 --> <mirror> <id>repo2</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://repo2.maven.org/maven2/</url> </mirror> </mirrors> <!-- 暂时在发布仓库到213的时候用到--> <servers> <!-- 仓库地址账号 --> <server> <id>xx-repo</id> <username>admin</username> <password>123456</password> </server> <!-- 插件地址账号 --> <server> <id>xx-plugin-repo</id> <username>admin</username> <password>123456</password> </server> </servers> </settings>
4、打开IDEA->Maven->Deploy 将项目到公司私服,大功告成。
加载全部内容