springboot项目通过gradle制作webjars
本文目录
什么是webjars?
Web前端使用了越来越多的JS或CSS,如jQuery,Backbone.js和Bootstrap。一般情况下,我们是将这些Web资源拷贝到Java Web项目的webapp相应目录下进行管理。这种通过人工方式管理可能会产生版本误差,拷贝版本错误,漏拷等现象,导致前端页面无法正确展示,版本不一致,文件混乱等,导致出现一些莫名其妙的错误等。
WebJars是将web前端资源(js,css等)打成jar包文件,然后借助Maven工具,以jar包形式对web前端资源进行统一依赖管理,保证这些Web资源版本唯一性。WebJars的jar包部署在Maven*仓库上。
WebJars官网:http://www.webjars.org/
通过gradle引入webjars依赖
dependencies {
// https://mvnrepository.com/artifact/org.webjars/jquery
implementation 'org.webjars:jquery:1.12.4'
}
引入后,jquery webjars的结构
使用
html中直接使用
<script src="/webjars/jquery/1.12.4/jquery.min.js"></script>
原理
springboot的自动装配帮我们配置好了webjars的映射
https://www.webjars.org/documentation#springboot
Spring Boot automatically configures Spring to map requests for /webjars to the /META-INF/resources/webjars directory of all the JARs in the CLASSPATH.
Idea中按住ctrl+shift+F 对 /META-INF/resources/webjars进行全局搜索
WebMvcAutoConfiguration.class帮我们配置好了,所以可以直接访问**/webjars/目录就能获取项目/META-INF/resources/webjars的资源文件,包括jar包中的资源;
所以我们只需要将这些资源打包到/META-INF/resources/webjars**目录下就能通过引入jar包的方式使用静态资源了,方便了版本管理;
maven制作webjars
官网有很详细的说明,请参考官网吧
https://www.webjars.org/contributing
通过gradle制作webjars并发布到本地
- Idea中用gradle新建java moudle
- 我们将用到的静态资源放在/src/main/resources/webjars中
- build.gradle文件内容
plugins {
id 'java'
id 'maven'
}
group 'jhd.jcode'
version '1.0'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
//打包webjar,发布到本地
uploadArchives {
repositories.mavenDeployer {
repository(url: 'file://I:/DEV/jhdMvnRepo/')
}
}
processResources {
//将webjars目录整个拷贝到build目录下的/resources/main/META-INF/resources/webjars
copy {
from("src/main/resources/webjars") {
eachFile {
println(getPath())
}
}
into "$buildDir/resources/main/META-INF/resources/webjars"
println("processResources: webjars copy success( created by jhd 20200620 16:19)")
}
}
jar {
//打jar包之前先将build目录中原来的webjars文件删除
doFirst {
delete "$buildDir/resources/main/webjars"
}
}
- gradle执行uploadArchives 即可完成webjar的制作
- 使用发布的自定义webjar
gradle 向引入其他依赖一样引入自定义的webjars
implementation 'jhd.jcode:jcode-web-webjars:1.0'
- 我们打的jar包目录结构
大功告成!赶紧实现自己的webjars吧!
上一篇: tabelview刷新不能及时问题
推荐阅读
-
springboot项目通过gradle制作webjars
-
【SpringBoot-创建项目】一.通过Idea创建SpringBoot项目
-
SpringBoot项目中通过MDC和自定义Filter操作traceId实现日志链路追踪
-
springboot通过url访问项目外的其他目录下的资源
-
Springboot中引入本地jar包,并通过maven把项目成功打包成jar包部署
-
IDEA 通过docker插件发布springboot项目的详细教程
-
IDEA使用Gradle构建SpringBoot项目工程的详细教程
-
springboot通过url地址访问项目外部文件的配置
-
springboot打包项目,配置文件分离,使用dockerfile部署,启动成功,测试通过
-
云服务器通过nginx部署springboot+vue前后端分离项目标准配置文件