当前位置: 首页 > news >正文

spring boot源码和lib分开打包

1.项目通过maven引入的jar多了之后,用maven打出的jar会非常庞大,我的是因为引入了ffmpeg的相关jar,所以,每次上传服务更新都要传输好久,修改maven打包方式,改为源码和lib分离模式
2.maven的pom.xml配置如下

<build><plugins><!-- Step 1: 只打包源码(不包含依赖) --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>3.4.0</version><configuration><archive><manifest><mainClass>com.xxx.springboot.xxxxxApplication</mainClass> <!-- 替换为你自己的主类 --><addClasspath>true</addClasspath><classpathPrefix>lib/</classpathPrefix></manifest><manifestEntries><!-- 不上maven管理的jar引入方式 --><Class-Path>lib/DmJdbcDriver18-1.0.jar lib/encrypt-body-spring-boot-starter-1.2.3.jar</Class-Path></manifestEntries></archive></configuration></plugin><!-- Step 2: 使用 spring-boot-maven-plugin 打包并提取依赖到 lib/ --><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><executions><execution><id>repackage</id><goals><goal>repackage</goal></goals><configuration><skip>true</skip> <!-- 禁用默认 repackage --></configuration></execution><execution><id>build-info</id><goals><goal>build-info</goal></goals></execution></executions></plugin><!-- Step 3: 提取依赖到 target/lib/ --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><executions><execution><id>copy-dependencies</id><phase>package</phase><goals><goal>copy-dependencies</goal></goals><configuration><outputDirectory>${project.build.directory}/lib</outputDirectory><overWriteReleases>false</overWriteReleases><overWriteSnapshots>false</overWriteSnapshots><overWriteIfNewer>true</overWriteIfNewer></configuration></execution></executions></plugin><!-- Step 4 (可选): 创建最终发布的 dist 文件夹 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-antrun-plugin</artifactId><executions><execution><phase>package</phase><goals><goal>run</goal></goals><configuration><target><mkdir dir="${project.build.directory}/dist"/><copy file="${project.build.directory}/${project.build.finalName}.jar"tofile="${project.build.directory}/dist/chenzhou.jar"/><copy todir="${project.build.directory}/dist/lib"><fileset dir="${project.build.directory}/lib"/></copy></target></configuration></execution></executions></plugin></plugins></build>

3.对于非maven仓库中的包处理方式

<!-- 非maven仓库包 -->
<dependency><groupId>com-dm</groupId><artifactId>DmJdbcDriver18</artifactId><version>1.0</version><scope>system</scope><systemPath>${project.basedir}/lib/DmJdbcDriver18.jar</systemPath>
</dependency>
<!-- 指定jar位置,多个以空格分开,对于不上版本结尾的名称,打包放入lib后会自动增加1.0,所以,引入jar写入也要增加 
例如:达梦数据库驱动包,项目实际引入DmJdbcDriver18.jar
在Class-Path中的配置要为:DmJdbcDriver18-1.0.jar
-->
<manifestEntries><Class-Path>lib/DmDialect-for-hibernate6.1-1.0.jar lib/DmJdbcDriver18-1.0.jar</Class-Path>
</manifestEntries>

如有不妥之处,请谅解!

相关文章:

  • AWS CloudFormation实战:构建可复用的ECS服务部署模板
  • AWS TAM行为面试模拟题
  • onnx 模型转 rknn 部署 rk3588 开发板
  • Centos与RockLinux设置静态ip
  • TripGenie:畅游济南旅行规划助手:团队工作纪实(十四)
  • 26-Oracle 23 ai Automatic Transaction Rollback(行锁终结者)
  • 如何正确的用Trae 打开 Unity 3D 项目
  • 神经网络全景图:五大核心架构详解与本质区别
  • QB/T 8103-2024 氯化聚氯乙烯板材检测
  • java并发包中的ReentrantLock锁详解篇
  • Java Collection接口解析
  • C++与C有什么不同
  • 数据集-目标检测系列- 狮子 数据集 lion >> DataBall
  • Python实战:高效连接与操作Elasticsearch的完整指南
  • [灵感源于算法] 链表类问题技巧总结
  • Ubuntu 实现可视化组raid和升级raid
  • Git 介绍、安装以及基本操作
  • 【PhysUnits】17.7 readme.md更新
  • 仓库物资出入库管理系统源码+uniapp小程序
  • 大模型笔记_检索增强生成(RAG)
  • 吕梁网站建设kuyiso/友情链接源码
  • 安徽太和有没有做网站的/优化游戏卡顿的软件
  • 漫画风格网站/葫岛百度seo
  • 搜索引擎网站入口/优化seo设置
  • 湖南网站建设/指数函数图像及性质
  • 新疆教育集团网站建设/产品线上推广方式都有哪些