springboot jar包瘦身

news/2024/11/13 9:17:09/文章来源:https://www.cnblogs.com/rolayblog/p/18413422

现在的项目结构是业务包引用comomn包,common包里又引用了很多其他的jar包,导致业务包打包出来动则就是一百甚至两百兆,现在要做到把公共的包放出来,放到一个单独的文件夹,业务包里只放业务代码。

现在只需要修改maven build节点如下:

<build><finalName>pager</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><!--表示编译版本配置有效--><fork>true</fork><!--引入第三方jar包时,不添加则引入的第三方jar不会被打入jar包中--><includeSystemScope>true</includeSystemScope><!--排除第三方jar文件--><includes><include><groupId>nothing</groupId><artifactId>nothing</artifactId></include></includes></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><executions><execution><id>copy-dependencies</id><phase>prepare-package</phase><goals><goal>copy-dependencies</goal></goals><configuration><!--复制到哪个路径,${project.build.directory} 缺醒为 target,其他内置参数见下面解释--><outputDirectory>${project.build.directory}/lib</outputDirectory><overWriteReleases>true</overWriteReleases><overWriteSnapshots>true</overWriteSnapshots><overWriteIfNewer>true</overWriteIfNewer></configuration></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><configuration><archive><manifest><!-- 是否要把第三方jar加入到类构建路径 --><addClasspath>true</addClasspath><!-- 外部依赖jar包的最终位置 --><classpathPrefix>lib/</classpathPrefix><!-- 项目启动类 --><mainClass>com.leenleda.pager.PagerApplication</mainClass></manifest></archive><!--资源文件不打进jar包中,做到配置跟项目分离的效果--><excludes><!-- 业务jar中过滤application.properties/yml文件,在jar包外控制 --><!--                        <exclude>*.properties</exclude>--><!--                        <exclude>*.xml</exclude>--><!--                        <exclude>*.yml</exclude>--></excludes></configuration></plugin></plugins></build>

这样jar包就只有一百多kb,引用的三方包就在lib目录下。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/796900.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记一次 .NET某上位机视觉程序 卡死分析

一:背景 1. 讲故事 前段时间有位朋友找到我,说他的窗体程序在客户这边出现了卡死,让我帮忙看下怎么回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 为什么会卡死 窗体程序的卡死,入口门槛很低,后续往下分析就不一定了,不管怎么说先用 !clrs…

QT6 QML编程

QT6 QML编程使用AI技术辅助生成 [QT界面美化视频课程](https://edu.csdn.net/lecturer/7637)[QT性能优化视频课程](https://edu.csdn.net/lecturer/7637)[QT原理与源码分析视频课程](https://edu.csdn.net/lecturer/7637)[QT QML C++扩展开发视频课程](https://edu.csdn.net/le…

php短视频系统,提升系统健壮性离不开重试机制

php短视频系统,提升系统健壮性离不开重试机制随着互联网的发展php短视频系统中的业务功能越来越复杂,有一些基础服务我们不可避免的会去调用一些第三方的接口或者公司内其他项目中提供的服务,但是远程服务的健壮性和网络稳定性都是不可控因素。在测试阶段可能没有什么异常情…

前端基本功——面试必问系列(1):都2024了,还没吃透Promise?一文搞懂

该系列文章是为了帮助大家不管面试还是开发对前端的一些基本但是很重要的知识点认识更加深入和全面。想写这个系列文章的初衷是:我发现前端的很多基本知识。为什么用?怎么用会更好?原理是什么?很多人并不清楚写在前面: 大家好,我是山里看瓜,该系列文章是为了帮助大家不管…

2390. 从字符串中移除星号

给你一个包含若干星号 * 的字符串 s 。 在一步操作中,你可以: 选中 s 中的一个星号。 移除星号 左侧 最近的那个 非星号 字符,并移除该星号自身。 返回移除 所有 星号之后的字符串。 注意: 生成的输入保证总是可以执行题面中描述的操作。 可以证明结果字符串是唯一的。 示例…

软工作业:用python实现论文查重

github项目地址这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/CSGrade22-34这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13229这个作业的目标 python实现论文查重并进行单元测试我的github仓库链接:https://github.com/LilaS…

modbus调试助手/mqtt调试工具/超轻巧物联网组件/多线程实时采集/各种协议支持

一、前言说明 搞物联网开发很多年,用的最多的当属modbus协议,一个稳定好用的物联网组件是物联网平台持续运行多年的基石,所以这个物联网组件从一开始就定位于自研,为了满足各种场景的需求,当然最重要的一点就是大大提升了自己对该协议的深度理解和应用,尤其是面对各种场景…

VMware NSX Advanced Load Balancer (NSX ALB) 22.1.7 发布下载,新增功能概览

VMware NSX Advanced Load Balancer (NSX ALB) 22.1.7 发布下载,新增功能概览VMware NSX Advanced Load Balancer (NSX ALB) 22.1.7 - 多云负载均衡平台 应用交付:多云负载均衡、Web 应用防火墙和容器 Ingress 服务 请访问原文链接:https://sysin.org/blog/vmware-nsx-alb-2…

4、循环单链表

1、代码实现#include<stdio.h> #include<malloc.h> #include<assert.h> typedef int ElemType;typedef struct Node{ElemType data;struct Node* next; }Node,*PNode;typedef struct SCList{PNode first;PNode last;int size; }SCList;void initSCList(SCLis…

论文分享 《Timing Side-channel Attacks and Countermeasures in CPU Microarchitectures》

Attack 概述 传统攻击(CONVENTIONAL ATTACKS) 在传统攻击中,Attacker 通常:与 Victim 共享硬件资源 (比如说 LLC,BP,Prefetcher 等) 可以观察,改变微架构状态攻击步骤本文作者将传统攻击分为以下三步,如 Fig 1 所示:定位“漏洞”:该漏洞包括“代码漏洞”(vulnerab…

PbootCMS访问页面出现PHP Fatal error: Allowed memory size of 13421

当访问 PbootCMS 页面时出现 PHP Fatal error: Allowed memory size of 13421 的错误,通常是由于 PHP 的内存限制过低导致的。这个错误表明 PHP 脚本在运行过程中耗尽了分配给它的内存。 解决方案增加 PHP 内存限制 检查 PHP 配置文件 (php.ini) 在脚本中动态增加内存限制详细…

什么是 PHP? 为什么用 PHP? 有谁在用 PHP?

PHP,全称“PHP: Hypertext Preprocessor”,是一种开源的服务器端脚本语言,主要用于网页开发,能够产生动态交互性数据。它由Rasmus Lerdorf在1994年创建,并随着时间的推移不断更新迭代,以适应互联网技术的发展。为什么使用 PHP? 开源免费:PHP作为一个开源项目,用户可以…