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

相关推荐
泡茶喝茶写代码24 分钟前
A股量化策略回测实战:从行情数据到绩效评估(第 13 篇):放量突破策略
java·python·股票数据api·股票数据api接口·股票量化数据api·股票量化数据接口
文丑颜不良啊28 分钟前
LeetCode626~650题目解析
java·leetcode
tianbin9111 小时前
批处理与微调辅助场景:Claude 中转并发、链路缓存与压测对比
java·开发语言·缓存
frjc1 小时前
Spring AI 里 ChatClient 和 ChatModel 有什么区别?什么时候该用哪个?
java·开发语言·spring·ai
Wang's Blog1 小时前
Java 项目实战: 交友项目 - 圈子功能的表设计方案
java·开发语言·交友
文丑颜不良啊1 小时前
LeetCode601~625题目解析
java·leetcode
文丑颜不良啊2 小时前
LeetCode651~675题目解析
java·leetcode
frjc2 小时前
Spring WebFlux SSE 长连接,可以替换为 Java 21 虚拟线程吗?
java·人工智能·spring·ai·ai编程
知守观3 小时前
从 4 套 PDF 库的混战,聊聊老项目的依赖管理与“静默失败”
java·后端·设计模式