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

Maven 项目打包:实现业务代码与第三方依赖分离

在实际项目部署中,我们有时不希望将所有代码打成一个 fat jar(大包) ,而是希望实现如下目标:

  • 自己的业务代码:打包成一个干净的 xxx.jar(仅包含 .class、资源等,不含依赖)。
  • 第三方依赖库:打包输出到 lib/ 子目录中,便于管理、替换、升级。

    image

     

    image

     将自己写的代码 打包到module-admin.jar中,而第三方依赖库打包到module-admin.jar 文件的子目录 lib 下,配置:

  • <projectxmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                                 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.anfioo</groupId>
        <artifactId>module-admin</artifactId>
        <version>1.0.0</version>
        <build>
            <finalName>module-admin</finalName>
            <plugins>
                <!-- 让 JAR 知道主类是哪个 -->
                <plugin>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>3.2.0</version>
                    <configuration>
                        <archive>
                            <manifest>
                                <mainClass>com.anfioo.Main</mainClass>
                            </manifest>
                        </archive>
                        <outputDirectory>${project.build.directory}/output</outputDirectory>
                    </configuration>
                </plugin>
                <!--            配置了maven坐标,会把依赖放入project.build.directory的output/lib下-->
                <!-- 拷贝依赖到 lib 目录 -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>3.1.2</version>
                    <executions>
                        <execution>
                            <id>copy-dependencies</id>
                            <phase>package</phase>
                            <goals>
                                <goal>copy-dependencies</goal>
                            </goals>
                            <configuration>
                                <outputDirectory>${project.build.directory}/output/lib</outputDirectory>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>

        <dependencies>
            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>2.10.1</version>
            </dependency>
        </dependencies>
    </project>
http://www.jsqmd.com/news/314075/

相关文章:

  • 平衡二叉树-day13
  • 破解信创改造痛点:国产DevOps平台选型的核心逻辑与实践路径
  • 通达信〖龙头模式突破〗套装指标,通过量能倍数判断突破有效性,抓右侧突破介入信号!
  • 警惕!AI系统面临的7大安全威胁及防御策略
  • JAVA毕业设计中经常容易报错的地方
  • 某旅游AI系统弹性扩展实战:用K8s实现酒店推荐弹性扩容
  • 基于SpringBoot+Vue+web的学生学业质量分析系统(源码+lw+部署文档+讲解等)
  • 探秘AI原生应用领域,AI代理的独特魅力
  • SQL Server更新统计信息会导致Parameter Sniffing
  • 计算机毕设java小区物业管理系统 基于Java的社区物业管理信息化系统设计与实现 Java技术驱动的住宅小区智能物业管理平台开发
  • 计算机毕设java学生综合评测系统的设计与实现 基于Java技术的学生综合素质评价系统开发与应用 Java环境下学生综合评测管理系统的构建与实现
  • 【毕业设计】python基于RSA算法的数字签名生成软件
  • 血管生成调控靶点TNC
  • 一屏掌握清新指数:负氧离子气象监测站助力景区智慧管理
  • Eureka在大数据服务治理中的应用现状与趋势
  • 大模型就是死胡同:一只松鼠为何比万亿参数更聪明?
  • 大数据时代的数据中台架构设计与实践
  • 单例模式 饿汉式(静态语句块)
  • 计算机毕设Java家庭财务管理系统 基于Java的家庭财务智能管理系统设计与实现 Java驱动的家庭财务综合管理平台开发
  • 计算机毕设Java建筑碳排放计算系统 基于Java的建筑全生命周期碳排放管理平台 Java架构下的建筑碳排放综合计算与管理系统
  • python租房大数据分析可视化系统 机器学习 K-means聚类算法 线性回归预测算法 机器学习 链家租房网 Django框架 scrapy 爬虫
  • 听音乐网址
  • 机器学习:python二手房大数据分析系统 可视化 Scrapy 爬虫 链家二手房数据 Django框架 基于用户的协同过滤推荐 二手房推荐系统 (源码)✅
  • 大数据领域 OLAP 的数据可视化工具选择
  • Day02-12.开发接口功能-分析登录用户传递流程13:16
  • AI大模型:python汽车大数据分析可视化系统 机器学习 协同过滤推荐算法 二手车推荐系统 汽车推荐系统 爬虫技术
  • 视频编解码与 GOP 结构详解
  • Python全栈项目--基于机器学习的垃圾邮件过滤系统
  • 高新技术产品认证核心指南
  • AI大模型机器学习:Python汽车推荐系统 数据分析 可视化 协同过滤推荐算法 汽车租赁 Django框架 大数据 新能源汽车 毕业设计