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项目)。

相关推荐
NWU_LK6 分钟前
【WebFlux】第八篇 —— 自定义调度器
java
AI人工智能+电脑小能手12 分钟前
【大白话说Java面试题 第210题】【10_网络协议篇】第1题:说说 TCP/IP 网络五层模型
java·网络协议·tcp/ip·计算机网络·网络五层模型
wuminyu12 分钟前
JUC组件逐层剥离与深度剖析
java·linux·c语言·jvm·c++·算法
大黄说说14 分钟前
EF Core 避坑指南:查询慢、循环查询、并发更新问题如何解决
java·服务器·数据库
城管不管22 分钟前
重生——第五次面试2026.8.1一面
java·数据库·后端·ai·面试·职场和发展·agent
DarLing丶张皇23 分钟前
【源码】JeecgBoot导出Excel模板
java·spring boot
223糖34 分钟前
Idea,pycharm2026激活保姆级教程
java·ide·intellij-idea
geovindu1 小时前
java: Gale-Shapley Algorithm
java·开发语言·后端·算法
LUCKY-LIVING1 小时前
ELF File in linux
android·java·linux
星核0penstarry1 小时前
DeepSeek-V4-Flash 正式公测:大模型行业进入「极速平价普惠时代」
java·开发语言·人工智能