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

相关推荐
Pkmer15 小时前
古法编程: 适配器模式
java·设计模式
longxibo15 小时前
【Flowable 7.2 源码深度解析与实战】
java·后端·流程图
norq juox15 小时前
Spring 中集成Hibernate
java·spring·hibernate
咸鱼2.015 小时前
【java入门到放弃】Zookeeper
java·zookeeper
雨辰AI15 小时前
从 MySQL 迁移至人大金仓 V9 完整改造指南|分页 / 函数 / 语法兼容全部解决
java·开发语言·数据库·后端·mysql·政务
阿维的博客日记15 小时前
介绍一下Redisson的看门狗机制
java·redis·缓存
大G的笔记本15 小时前
为什么接口中的变量默认是 public static final(常量)
java
java1234_小锋15 小时前
Spring AI 2.0 开发Java Agent智能体 - stream()方法Flux流式响应输出
java·人工智能·spring
庞轩px16 小时前
第四篇:多级缓存架构——Caffeine + Redis + MySQL 三级协同
java·redis·mysql·读写分离·caffeine·本地缓存
rKWP8gKv716 小时前
单例模式在Java中的7种实现:从懒汉式到静态内部类
java·开发语言·单例模式