Springboot WebJar打包及使用实现流程解析

前言

  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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 浅谈java项目与javaweb项目导入jar包的区别

    现在的项目基本上都是java web项目,所以导入jar包会出现问题,主要介绍一下java项目与javaweb项目的区别: java项目: 在classLoader加载jar和class的时候,是分开加载的,一般jar导入分两种: 1.在web-inf下的lib中直接引入 2.在user library上引入 无论以上哪种引入,jar包都能加载并且运行,classLoader会智能加载(本地JRE运行) javaweb项目: 不是通过本地的JRE运行的,而是部署到web服务器(比如tomcat,

  • 详解IDEA使用Maven项目不能加入本地Jar包的解决方法

    使用IDEA编辑Web项目已经逐渐超过了使用eclipse的人数,但是IDEA对于pom.xml的执行也就是Maven方式导包支持并不是很完善,简单来说就是pom.xml上面记录的依赖库一般都能导入,但是如果pom.xml上面的某个依赖库失效,比如远程服务器关闭或者网络不通,或者是你想要加入本地硬盘上的某个jar包而不修改pom.xml的时候,IDEA的弊端就会显现出来.主要表现就是无法获得的依赖库或者本地Jar包无法放到/WEB-INF/lib目录下,导致Web项目部署时报错. 一个常见的错误

  • springboot web项目打jar或者war包并运行的实现

    (一)springboot web项目打jar包 1.打包 两种打包方式 maven命令打包 切换目录到工程根下,pom.xml所在位置,运行maven的打包命令 mvn clean package -Dmaven.test.skip=true IDEA 工具执行maven任务打包 会在xxx项目模块下/target目录下生成xxx-0.0.1-SNAPSHOT.jar 2.运行jar包 启动运行(切换目录到target下,执行命令) F:\Java\idea-workspace\shixun0

  • SpringBoot使用WebJars统一管理静态资源的方法

    传统管理静态资源主要依赖于复制粘贴,不利于后期维护,为了让大家往后更舒心,让WebJars给静态资源来一次搬家革命吧!! 学习目标 简单两步!快速学会使用WebJars统一管理前端依赖. 快速查阅 源码下载:SpringBoot Webjars Learning 使用教程 一.引入相关依赖 在 WebJars官网找到项目中需要的依赖,例如在项目中引入jQuery.BootStrap前端组件等.例如: 版本定位工具:webjars-locator-core 前端组件:jquery .bootstr

  • 在idea中将java项目中的单个类打包成jar包操作

    JAR文件的全称是Java Archive File,即Java档案文件.JAR文件是一种压缩文件,与常见的ZIP压缩文件兼容,被称为JAR包. JAR文件与zip文件的主要区别是在JAR文件中默认包含了一个名为META-INF/MANIFEST.MF的清单文件,这个清单文件是在生成JAR文件时系统自动创建的. 打包jar包 1.先创建一个要打包成jar包的类 2.File -> Project Structrue -> Artifacts -> + -> JAR -> fr

  • IDEA 程序包不存在,找不到符号但是明明存在对应的jar包(问题分析及解决方案)

    环境 IntelliJ IDEA 2020.1 JDK1.8 前提概要 问题1和问题2其实是同一个问题,但是表现上有一点不一样 具体是如何引起该问题,尚不清楚,特此记录 问题1描述 一运行springboot启动类,就报一大堆jar报错idea Kotlin: Classpath entry points to a non-existent location:类路径条目指向不存在的位置 程序包不存在 找不到符号 本地仓库也不是存在这个位置,很疑惑 然后就去这个文件目录下找这个目录删除了.还是报这

  • maven打包web项目时同时打包为war和jar文件的方法

    本文介绍了maven打包web项目时同时打包为war和jar文件的方法,分享给大家,具体如下: 首先在pom.xml文件中指定war的打包方式,war <artifactId>test</artifactId> <name>test</name> <packaging>war</packaging> 上述代码在eclipse中执行maven install时, 会默认打成war,并放入本地仓库. web项目时同时打包为war和jar文

  • SpringBoot中关于static和templates的注意事项以及webjars的配置

    1. 默认情况下, 网页存放于static目录下, 默认的"/"指向的是~/resouces/static/index.html文 2. 如果引入了thymeleaf, 则默认指向的地址为~/resouces/templates/index.html <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymel

  • IDEA打包jar-解决找不到或无法加载主类 main的问题

    学习大佬们开发安全小工具,打包jar解决错误: 找不到或无法加载主类 main 1 Maven方式 遇到报错"找不到或无法加载主类 main" 解决方案 一定加入<build> <plugins>中的插件,这里需要注意的是 <mainClass>Main</mainClass>,这里填写的路径为/src/main/java下开始写的 <?xml version="1.0" encoding="UTF-8

  • Springboot WebJar打包及使用实现流程解析

    前言 WebJar官网:https://www.webjars.org/,对于任何与Servlet 3兼容的容器,WEB-INF/lib目录中的webjar都会自动作为静态资源提供.这是因为WEB-INF/lib中的JAR中的META-INF/resources目录中的任何内容都会自动公开为静态资源. 官网上面已经有很多热门webjar,但有时候还是不能满足我们的需要,我们需要自己打包WebJar,本文记录如何WebJar的打包.使用 打包 首先创建一个maven工程,干干净净什么都没有 把一下

  • SpringBoot多模块项目框架搭建过程解析

    这篇文章主要介绍了SpringBoot多模块项目框架搭建过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 创建根项目,New Project 创建一个名为 sms-bomber 的 SpringBoot 新项目,打包为 JAR 的即可,这里只添加 Lombok 与 spring-boot-starter-web 依赖,这两个依赖会传递给所有子模块,删除创建完成的项目中的 .mvn\ src\ mvnw mvnw.cmd 创建启动模块,根目

  • springboot项目如何打war包流程的方法

    目前,前后端分离的架构已成主流,因此使用springboot构建应用是非常快速的,项目发布到服务器上的时候,只需要打成一个jar包,然后通过命令 : java -jar jar包名称即可启动服务了: 但在有些场景下,比如部署到外部的服务器的时候,客户方指定要以tomcat的形式启动服务的时候,即需要由服务提供方提供一个war包的时候,该怎么办呢? 一开始没有查找资料,自己差点准备使用传统的ssm框架改造服务的,后来思考和参考相关资料后,发现只需要挤出简单的配置和改造就可以做到,下面是记载将spr

  • 浅谈SpringBoot内嵌Tomcat的实现原理解析

    一.序言 使用SpringBoot经常会使用内嵌的tomcat做为项目的启动容器,本文将从源码的角度出发,剖析SpringBoot内嵌Tomcat的实现原理,讨论Tomcat何时创建.何时启动以及怎么启动. 二.引入Tomcat组件 导入依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId&

  • SpringBoot项目打包war包时无法运行问题的解决方式

    目录 序 SpringBoot项目打包 jar 包 和 tomcat 包 实际问题及解决方式 问题 解决方法 end 序 现实的情况下遇见过该问题刚好记录一下! SpringBoot项目打包 首先默认创建的maven springBoot项目进行代码的clean 和 install进行项目打包的时候默认是使用jar 包的形式进行打包的,如果需要进行war 包打包部署的话就需要修改相应的 数据内容了 jar 包 和 tomcat 包 jar 包打完之后进行部署的时候使用 java -jar 的启动

  • SpringBoot bean查询加载顺序流程详解

    目录 背景 探索-源码 进一步思考 背景 SpringBoot bean 加载顺序如何查看,想看加载了哪些bean, 这些bean的加载顺序是什么? 实际加载顺序不受控制,但会有一些大的原则: 1.按照字母顺序加载(同一文件夹下按照字母数序:不同文件夹下,先按照文件夹命名的字母顺序加载)2.不同的bean声明方式不同的加载时机,顺序总结:@ComponentScan > @Import > @Bean   这里的ComponentScan指@ComponentScan及其子注解,Bean指的是

  • SpringBoot项目打包三方JAR的示例代码

    SpringBoot项目打包成可运行JAR包,但是不是所有JAR包都是MAVEN中央库或者是私有库里面有的,那么要如何把第三方的JAR包通过MAVEN的SpringBoot的打包组件打包进可运行JAR包里呢? 解决方法: 1.所第三方的JAR放到项目下如:/src/lib 2.加入maven依赖: <dependency> <groupId>com.seven</groupId> <artifactId>smssdk</artifactId> &

  • Springboot 整合 Dubbo/ZooKeeper 实现 SOA 案例解析

    一.为啥整合 Dubbo 实现 SOA Dubbo 不单单只是高性能的 RPC 调用框架,更是 SOA 服务治理的一种方案. 核心: 远程通信,向本地调用一样调用远程方法. 集群容错 服务自动发现和注册,可平滑添加或者删除服务提供者. 我们常常使用 Springboot 暴露 HTTP 服务,并走 JSON 模式.但慢慢量大了,一种 SOA 的治理方案.这样可以暴露出 Dubbo 服务接口,提供给 Dubbo 消费者进行 RPC 调用.下面我们详解下如何集成 Dubbo. 二.运行 spring

  • python打包成so文件过程解析

    这篇文章主要介绍了python打包成so文件过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 wget https://bootstrap.pypa.io/get-pip.py python get-pip.py pip install cython 编写setput.py文件: setup.py文件内容如下: from distutils.core import setup from distutils.extension import

  • python manage.py runserver流程解析

    这篇文章主要介绍了python manage.py runserver流程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 版本 python27 django 1.0 搭建可运行的环境 创建python27 虚拟环境 github 下载 django-1.0.tar.gz(1.0 版本的django) 解压 可以看到,有个 demo 在 examples 目录 把 django 目录拷贝到 examples 下面,这样 example 可以

随机推荐