Maven的三种项目打包方式——pom,jar,war的区别

1、pom :用在父级工程或聚合工程中,用来做jar包的版本控制,必须指明这个聚合工程的打包方式为pom。

特点

  • 父项目:用于定义一组共享的构建配置和依赖管理。
  • 子项目可以继承这些配置,避免重复配置。
  • 聚合项目:用于管理多个模块的构建,可以一次性构建和发布多个模块。
java 复制代码
    <packaging>pom</packaging>

    <modules>
        <module>dexun-base</module>
        <module>dexun-order</module>
        <module>dexun-system</module>
		<module>dexun-infra</module>
    </modules>

moudle中的子项目可以为jar或者war

java 复制代码
 <packaging>jar</packaging>
 <packaging>war</packaging>

2、jar:用于打包普通Java项目或可执行应用(如SpringBoot项目),包含.class文件、资源文件和依赖(可选的)。

特点:

  • 自包含(SpringBoot的fat jar包含所有依赖),

  • 可直接通过java -jar运行。

  • 适用场景:微服务、独立应用。

2、war:用于打包普通Java项目或可执行应用(如SpringBoot项目),包含.class文件、资源文件和依赖(可选的)。

特点:

  • 用于传统Java Web项目,需部署到Servlet容器(如Tomcat)。

  • 特点:不包含Servlet容器本身,依赖由容器提供或通过WEB-INF/lib存放。

  • 适用场景:企业级Web应用(如SSM项目)。

相关推荐
KaMeidebaby35 分钟前
卡梅德生物技术快报|抗体亲和力成熟工业化调控新机制:差异性浆细胞增殖工艺优化思路
java·开发语言·人工智能·算法·机器学习·架构·spark
醉城夜风~2 小时前
Java详解经典算法题:接雨水(三种实现方案+原理剖析)
java·开发语言·算法
数智化转型推荐官3 小时前
2026统一身份管理系统五大发展趋势解读
java·运维·微服务
看菜鸡互3 小时前
探索用 SlideML 让大模型生成 PPT 的实验方法
java·运维
程序员张35 小时前
SpringBoot集成BCrypt密码加密库
java·spring boot·后端
闲猫5 小时前
Spring AI Agentic 模式(第1部分):Agent Skills——模块化、可复用的能力
java·人工智能·spring
源图客5 小时前
云途物流API开发-鉴权认证(Java)
java·网络·python
liguojun20255 小时前
篮球馆自动计时收费系统:从规则配置到自动结算的全流程拆解
java·大数据·运维·人工智能·物联网·1024程序员节
952366 小时前
RabbitMQ-基础操作
java·spring boot·分布式·后端·spring·rabbitmq
卓怡学长6 小时前
w266基于spring boot + vue 圣地延安美食乐享系统
java·数据库·vue.js·spring boot·spring·intellij-idea