springboot 打包 分离依赖 和自己的代码
由于经常性的修改线上代码,上传项目真的是等待和煎熬
正常打包上传是需要把所有的依赖都打包上去的,这样一个项目小的也有50多兆.因为依赖不是经常的变动,那么我们可以将依赖和自己的代码分离开来.依赖只需要第一次部署的时候放上去,之后只需要部署自己修改的代码就好了.如果是springcloud项目,只需要有一个依赖就好了,多个项目可以共同使用一个.之前如果50M需要10秒钟,现在改为只需要上传自己写的代码,那么真的是秒传,秒启动.
首先我们创建一个springboot项目
找到pom文件中
修改
<build>
<plugins>
<!-- <plugin>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-maven-plugin</artifactId>-->
<!-- </plugin>-->
<!--打包自己的代码-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<!-- 添加依赖jar路径 -->
<addClasspath>true</addClasspath>
<!-- 入口程序-修改为自己的启动类名 -->
<mainClass>com.wangbingchen.qwe.QweApplication</mainClass>
<classpathPrefix>../lib</classpathPrefix>
</manifest>
</archive>
</configuration>
</plugin>
<!--打包自己的代码-->
<!--打包依赖到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>
<!-- ${project.build.directory}target目录 -->
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<!-- <!– 不复制间接依赖 –>-->
<!-- <excludeTransitive>true</excludeTransitive>-->
<!-- <stripVersion>true</stripVersion>-->
<!-- <!– 不复制scope=provided的依赖包 –>-->
<!-- <excludeScope>provided</excludeScope>-->
</configuration>
</execution>
</executions>
</plugin>
<!--打包依赖到lib-->
</plugins>
</build>
接下来和正常打包一样直接点击install打包
生成jar和lib
复制lib文件和jar到服务器
注意目录结构因为打包的时候配置../lib 这个表示 打出的jar会去上级目录中找lib文件 多个服务时 可以这样打包,如果是单个服务可以改../lib为lib 这样jar和lib就应该放在同级
直接启动jar 成功
可能遇到的问题
Error: Could not find or load main class com.wangbingchen.qwe.QweApplication
打包前记得修改pom文件mainClass 标签里面的类为自己的类
遇到其他问题请联系我 389561407@qq.com
分类:
java篇
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!