Springboot 项目打包分离lib包与配置文件

SpringBoot项目打包分离lib包与配置文件 SpringBoot初始化建立项目默认的spring-boot-maven-plugin插件,进行项目打包,这个插件会将项目所有的依赖打入BOOT-INF/lib下,package打包后,打出的是完整的可运行的jar包,根据项目的不同大小不同,整体来说是比较大的。替换为maven-jar-plugin打包插件先后分别双击执行clean和package命令,进行清理和打包。这样就完成了配置文件以及lib包和jar的分离了,并且jar在运行的时候会默认去读取config文件夹中的配置,修改起来非常方便。 阅读详情

1、移除原来的Springboot项目打包插件

  • 原来使用的打包插件:spring-boot-maven-plugin在这里插入图片描述

2、替换为maven-jar-plugin插件:

addClasspath:表示需要加入到类构建路径
classpathPrefix:指定生成的Manifest文件中Class-Path依赖lib前面都加上该前缀路径,构建出lib/xx.jar
mainClass:表示项目的启动类。
 <plugin>
 	 <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-jar-plugin</artifactId>
     <version>3.1.1</version>
     <configuration>
         <archive>
             <manifest>
                 <addClasspath>true</addClasspath>
                <!--指定jar包-->
                 <classpathPrefix>lib/</classpathPrefix>
                  <!--指定项目启动类-->
                 <mainClass>com.dmz.DemoApplication</mainClass>
             </manifest>
         </archive>
     </configuration>
 </plugin>

3、配置拷贝依赖的jar包到lib目录插件

<plugin>
 	<groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <id>copy-lib</id>
            <phase>package</phase>
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
            <configuration>
                <outputDirectory>target/lib</outputDirectory>
                <excludeTransitive>false</excludeTransitive>
                <stripVersion>false</stripVersion>
                <includeScope>runtime</includeScope>
            </configuration>
        </execution>
    </executions>
</plugin>

4、打包项目

在这里插入图片描述

5、在和jar包同级的目录下新建一个config目录,放入application.yml配置文件

打包的jar里面不是应该有application.yml文件吗,这里为什么再放一份?
这是因为springboot读取配置有一个优先级,放在jar包外面config目录优先级最高,主要是便于从外部修改配置,而不是改jar包中的application.yml文件。优先级如下:
 (1) 当前目录的config目录下
 (2) 当前目录
 (3) classpath的config目录下
 (4) classpath的根目录
在这里插入图片描述

6、 启动项目

加入 –debug 可以让你可以看到比较详细的启动日志:java -jar xxx.jar --debug

分离springboot中的lib 仅供参考: 这次分离lib源于疫情期间连公司内网上传jar过于缓慢。在一个项目构建之初,所使用的依赖基本都已经确定,因此大概率不会对项目有大的影响。(非适用于所有场景) 首先我们要引入插件: ... 阅读详情

相关推荐

SpringBoot打包将jar包与lib依赖、配置文件分开

它可以从 Maven 仓库中下载依赖项、解析依赖树、复制依赖项到指定目录等。它提供了许多与依赖项相关的功能,例如生成依赖报告、分析依赖冲突等。它会将编译好的类文件、资源文件等打包到 JAR 文件中,并可以配置主类、依赖项、过滤规则等。:该插件用于处理项目的资源文件。properties标签中定义项目保存目录、依赖的输出目录、jar包的输出目录、resources中配置文件的输出目录、编码格式。在打包阶段使用,将项目的编译输出文件打包为 JAR 文件。可以在构建的不同阶段使用,用于管理和处理项目的依赖项。

weixin_40686055的博客 1486

spring-boot idea开发工具设置

本节介绍一些 Ieda-2017.2.x使用及基本配置,部分资料来源网友提供。具体是那个不太记得,只是做了记录的一些配置过程。1.1. idea破解专业版的intellij可以免费试用30天。为了以后开发方便,经过网络查找破解方法如下:选择菜单Help-&gt;Register-&gt;Licenseserver,填上http://idea.iteblog.com/key.php,如图所示:点...

奋斗的小鸟专栏 5147

Maven-SpringBoot打包-分离lib和resources

目标: 1. 分离jar包依赖到外部lib文件夹 2. 分离相关配置文件到外部 3. package jar 包,仅包含代码文件;通过/META_INF/MANIFEST.MF 控制加载依赖jar包 和 启动类 实现 - 直接上pom配置: 适配步骤: 1. 变更 groupId 和 artifactId 为项目信息。 2. maven-jar-plugin 的 mainClass ...

靳国栋的博客 1394

Maven打包所有依赖到一个可执行jar中,将外部依赖加入到classPath中

首先说一下比较常用的两种打包方式: 前提:maven构建可执行jar包时,如果项目依赖了pom中定义的dependency之外的外部jar包,maven-jar-plugin默认是不会把这 些额外jar包的依赖信息放在jar文件的MANIFEST.MF文件中的,这会导致jar包运行时出现找不到指定类的错误 方式一: 打包成可执行jar文件,但是将所有依赖(包括外部依赖)单独打包到另外一个指...

Mr_moving 8321

大模型应用开发面试全流程实录:RAG、上下文工程与多Agent协作技术深度解析

Transformer 依靠多头自注意力和位置编码实现高效序列建模。Prompt Engineering包含多种设计思路,如 Zero-shot、Few-shot、Chain-of-thought,提升模型泛化和推理。Token 和上下文窗口直接影响模型性能与成本,选择需结合实际业务场景(如客服对话需长窗口)。Embedding 技术是 RAG 的基础,决定了语义检索效果。向量数据库如 FAISS、Milvus等分别适用于本地/分布式检索。

m0_52114506的博客 829

hi3516cv610在PQStream上实现拉出图像,windows和板端操作记录

PQStream拉出图像

weixin_51838255的博客 730

java classpath如何指定一个目录及java资源文件的路径查找问题

一、资源文件的路径查找 当我们自己的程序需要处理配置文件时(比如xml文件或properties文件),通常会遇到两个问题:   (1)我的配置文件应该放在哪里?   (2)怎么我的配置文件找不到了?   在了解了Java加载资源文件的机制后,以上这两个问题便迎刃而解了。 对于第一个问题,答案是:请将你的资源文件放在classpath里,如果资源文件在jar中,请将该

salonhuang的博客 2万+

Sonatype nexus3 数据迁移及升级3.71+(迁移到H2数据库)

nexus3旧版本OrientDB升级H2,及整体迁移nexus3数据到其它服务器。

葫芦娃 5557

springboot项目pom配置代码,配置文件,lib包分离打包

springboot项目pom配置代码,配置文件,lib包分离打包 &lt;build&gt; &lt;plugins&gt; &lt;plugin&gt; &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt; &lt;artif...

lollipopss的博客 1151

极空间NAS小白也能搞定的Gitea部署:Docker+MySQL避坑全记录

本文为极空间NAS用户提供了一份详尽的Gitea私有代码仓库部署指南。针对极空间ARM架构和图形化Docker管理的特殊性,文章重点讲解了如何通过Docker和MySQL容器进行部署,并提供了三种获取兼容镜像的实战策略,特别是利用第三方镜像站转录的方法,帮助小白用户成功搭建并初始化Gitea服务,实现私有Git托管。

weixin_28318011的博客 369

从共现矩阵到共现图一步到位——详解版

1.共现矩阵 判断大量不同文本之间,相邻词的联系,两词在所有文本中相邻的次数在矩阵中用数值表示。(参考此) 例子如下: 1.1 文本 • I like deep learning. • I like NLP. • I enjoy flying. 1.2 共现矩阵 2.共现图 2.1 数据预处理(节点和边) 获取文件node.csv和edge.csv。代码详见github仓库 2.2 共现图的制作 2.2.1 gephi的安装(参考此) (1)先下载gephi (2) 再配置java环境(下载java1.8

微乐的博客 4403

SpringBoot多模块项目打包分离lib包与配置文件

先前发布springboot项目的时候,每次改动一点东西,就需要将整个项目重新打包部署,并且打包出来的jar包太庞大,每次更新项目的时候,需要上传的文件很大,十分不便,故把依赖lib里面的jar包从项目分离出来,每次部署只需要发布代码即可。

wxairn的博客 2092

Krylov子空间与Arnoldi过程

一、应用背景 Krylov子空间方法是模型降阶(MOR)的一种,Krylov 子空间方法就是在Krylov子空间中寻找近似解。 二、Krylov子空间 n是原始矩阵的维度,m为降阶后矩阵的维度,通常m<<n。 三、Arnoldi 过程: 计算Km 的一组正交 对应上述MGS过程的python代码: import numpy as np def arnoldi_itera...

保持写作习惯,完成知识沉淀 6004

boot lib分离 spring_Springboot 打jar包分离lib,配置文件正确方式(二)

Springboot 打jar包分离lib,配置文件正确方式(二)背景从《Springboot 打jar包分离lib,配置文件正确方式》中,可以达到把配置文件和依赖第三方的jar包分离开,但稍显有点臃肿,今天再次提供一种方式,供大家参考。部署环境window 10redhat 6.4其他版本没有尝试,应该也是可以的POM.xmlxsi:schemaLocation="http://maven.ap...

weixin_33728077的博客 232

RK3566 Android11默认客户Launcher修改

【代码】RK3566 Android11默认客户Launcher修改。

Android系统开发笔记 1726

基于Lumerical的1550 nm InGaAs/InP与InGaAs/InAlAs APD设计与功率饱和度优化

摘要 本研究利用Ansys Lumerical软件对1550 nm激光雷达应用的InGaAs/InP和InGaAs/InAlAs雪崩光电二极管(APD)进行仿真设计与优化。通过FDTD光学仿真获取光吸收分布,结合CHARGE模块的电学仿真分析暗电流、光电流及雪崩增益特性。重点研究了两种材料体系的性能差异,并针对近距离强反射导致的功率饱和问题提出结构优化方案。仿真结果表明,InGaAs/InAlAs APD具有更优的过量噪声特性,而优化的电荷层设计可显著提升器件的功率饱和阈值。研究提供了完整的仿真流程与代码实

huanghm88的专栏 97

SpringBoot项目分离打包部署至阿里云centos7.3挂起后台运行,配置文件,lib,jar包分离

问题: ​ springboot单体项目打包上线,体积大,在特定公网下,传输速度较慢。采用分离打包,并分离配置文件,减缓以上问题。 步骤: 1. pom中导入maneb插件,并修改相关内容,打包 2. 在服务器上原始jar包目录下创建相应的config目录,确保lib config,jar包在同一个目录下 3. 服务器上挂起运行 4. 阿里云开放端口 具体步骤 ​ 1. pom中导入以下内容,注意修改主函数坐标-指定入口类,右键入口类copy path去掉.java <build>

weixin_43562415的博客 313

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

boot lib分离 spring_Springboot 打jar包分离lib,配置文件正确方式

POM.xmlxsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">4.0.0com.elvishtest0.0.1-SNAPSHOTjartest2test project for Spring Bootorg.springframework.bo...

weixin_39965102的博客 354

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

boot lib分离 spring_Spring Boot 打包,分离依赖jar,配置文件

pom.xmlorg.apache.maven.pluginsmaven-jar-plugin*.***/*.xmltruelib/falsesite.yuyanjia.template.Application./resources/${project.build.directory}org.apache.maven.pluginsmaven-dependency-plugincopy-depen...

weixin_39838362的博客 146

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

springboot 打 jar 包分离依赖 lib 和 配置文件

springboot 打 jar 包分离依赖 lib 和 配置文件 前言 先前发布 boot 项目的时候,改动一点东西,就需要将整个项目重新打包部署,十分不便,故把依赖 lib 从项目分离出来,每次部署只需要发布代码即可。 半自动化步骤 步骤1,更换 maven 的 jar 打包插件 先前使用的是 spring-boot-maven-plugin 来打包 这个插件会将项目所有的依赖打入 BO...

王坦的博客 4万+

30 SpringBoot & Maven 依赖、配置分离打包

本篇文章只作为个人参考笔记使用 支持原创精神,原文链接: SpringBoot & Maven 依赖、配置分离打包_有三i的博客-优快云博客_maven springboot 打包 介绍 随着技术的迭代,在我们日常的开发中现在普遍都是使用SpringBoot进行开发了,在使用maven构建的传统web应用时,我们都是将项目打包成war包,放在tomcat中部署,各个目录资源都是分离开的,对于配置文件的修改非常方便。但是使用SpringBoot的打包工具的话,默认是打包成一个jar文件,.

qq_44885775的博客 555

springboot 生产环境的打包

在生产环境中,java程序的打包方式,如果是web型的一般打成war包。一般服务型的打成jar包。 在springboot中,默认在打包成jar时,会把项目的所有文件打包成一个jar包。这个包会非常大。配置文件内置。不能修改。假如修改,需要重新打包整个项目。由于上面的这些缺点。现在改进打包方式...

377

Springboot 打jar包实现分离依赖lib和配置

Springboot 打jar包实现分离依赖lib和配置 前言操作步骤 ) 前言 为了业务需要配置文件和jar分离,便于使用者修改配置信息,在网上找了很久,最终找到一个简单有效的方法。 操作步骤 打开project工程的pom.xml文件,将下列配置粘贴到pom文件中: <properties> <java.version>1.8</java.version> <!--在此配置打包输出的路径--> &l

qq_41579515的博客 750

springboot使用maven打包分离lib和resource

springboot使用maven打包分离lib和resource 项目发版,为了应对更新多变的依赖jar包,实现增量或替换依赖jar包,越来越多的企业实现源代码和依赖jar包和依赖配置分离,更好的应对复杂多变的现场和生产环境,使用maven打包配置如下: <build> <plugins> <!-- 指定启动类,将依赖打成外部jar包 --> <...

jiazhipeng12的专栏 920

springboot项目创建笔记27 之《springboot打包优化》

由于springboot项目一般是以jar包形式运行,默认是将依赖的jar包一起打包到程序中,部署时传输的文件比较大。所以我们可以将程序的jar包、lib库、配置文件分离开来,方面升级部署。 一、用到的插件 1、spring-boot-maven-plugin插件 这个是springboot的插件,会将项目所有的依赖打入BOOT-INF/lib 2、maven-jar-plugin插件 打包时分离程序和依赖包 3、maven-dependency-plugin插件 将依赖包复制到lib目录下 3.

csj50的专栏 762

服务器启动springboot项目,在windows服务器上部署spring boot项目

前言写下这篇文章是为了记录第一次发布Spring Boot项目的过程。初步认识Spring BootSpringBoot是由Pivotal团队在2013年开始研发、2014年4月发布第一个版本的全新开源的轻量级框架。它基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。SpringBoot所具备的特征(1)可以...

weixin_39962758的博客 1318
上一篇: Base64编码文件转换
下一篇: Springboot项目打包为war包
阿拉灯神丁-Java
博客等级 码龄7年 6粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值