Maven打包实践:实现代码与三方依赖分离

发布时间:2026/7/10 4:33:04
Maven打包实践:实现代码与三方依赖分离 一、前言在实际项目中经常会遇到这样的问题。自己的业务代码就十几KB结果项目打包后整个jar包却达到了上百MB受限于网络等限制导致升级一次功能会非常耗时。这里我们就介绍下如何将自己的代码和三方依赖分开如果不变动依赖每次只升级自己的代码部分就可以。二、实践2.1 修改pom.xmlplugins!-- 让 JAR 知道主类是哪个 --pluginartifactIdmaven-jar-plugin/artifactIdversion3.2.0/versionconfigurationarchivemanifestmainClasscom.wno704.WnoQuartzAdminApplication/mainClass/manifest/archiveoutputDirectory${project.build.directory}/output/outputDirectory/configuration/plugin!--配置了maven坐标会把依赖放入project.build.directory的output/lib下--!-- 拷贝依赖到 lib 目录 --plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-dependency-plugin/artifactIdversion3.1.2/versionexecutionsexecutionidcopy-dependencies/idphasepackage/phasegoalsgoalcopy-dependencies/goal/goalsconfigurationoutputDirectory${project.build.directory}/output/lib/outputDirectory/configuration/execution/executions/plugin/plugins注意mainClass需要指定项目的主类springboot项目就是SpringBootApplication所在的类。2.2 项目启动由于根据以上的pom文件打包会将自己的代码成一个干净的 xxx.jar仅包含 .class、资源等不含依赖三方依赖打包输出到 lib/ 子目录中便于管理、替换、升级。这样我们每次升级只需要替换自己的xxx.jar就可以了。这个时候我们的启动脚本要修改如下java -cp “wnoQuartzAdmin.jar;lib/*” com.wno704.WnoQuartzAdminApplication注意其中wnoQuartzAdmin.jar为自己代码生成的jar包。最后项目启动如下系统访问也正常