Maven 的 <packaging>pom</packaging> 都有哪些值

Maven 的 pom 都有哪些值

在 Maven 中,<packaging> 标签用于定义项目的打包类型,它决定了项目最终构建的输出类型、默认生命周期阶段以及使用的构建插件。Maven 支持多种打包方式,以下是常见的 <packaging> 值及其具体用途:

1. jar(默认值)

这是 Maven 最基础的打包类型。构建后会生成一个 .jar 文件,包含编译后的 .class 字节码文件和资源文件。它通常用于普通的 Java 类库、工具组件,或者作为独立运行的 Java 应用程序(如 Spring Boot 微服务项目)。

2. pom

当项目仅作为其他项目的父 POM 或聚合项目时使用。这种类型的项目本身不包含任何实际代码,也不会生成可执行文件或二进制库。它主要用于定义一组共享的配置、依赖关系和插件设置,其子模块可以继承这些配置。

3. war

专用于 Java Web 应用程序。构建后会生成一个 .war 文件,除了包含 Java 类和资源外,还必须包含 WEB-INF 目录(含 web.xml 等配置文件)以及前端 Web 资源(如 HTML、JSP、CSS 等)。该文件需要部署到 Servlet 容器(如 Tomcat、Jetty)中运行。

4. ear

用于企业级 Java 应用程序(Java EE)。EAR(Enterprise Archive)文件是一个包含多个模块(如 EJB JARs、WARs、RARs 等)的归档文件,适合复杂的多层应用架构。构建后生成 .ear 文件,通常需要部署到全功能的 Java EE 应用服务器(如 WildFly、WebLogic)。

5. maven-plugin

用于创建自定义的 Maven 插件。这些插件打包后可以在其他 Maven 项目中被引用,以执行特定的自定义构建任务。

6. ejb

用于企业 JavaBean(EJB)组件。这是一种服务器端组件模型,主要用于构建分布式业务应用。构建后虽然也生成 .jar 文件,但其内部结构和包含的描述符文件与普通 JAR 包有所不同。

7. bundle

与 OSGi(Open Service Gateway initiative)规范兼容的 JAR 包。这类包通常带有额外的元数据,以支持模块化和服务的动态加载。

除了上述核心打包值外,Maven 还支持 rar 等其他类型。如果在 POM 文件中没有显式声明 <packaging> 标签,Maven 会默认将其视为 jar 包。


你是在写父 POM 吗?如果是的话,我可以给你一份完整的父 POM 配置示例,方便你直接复制使用。

相关推荐
StevenLdh17 分钟前
第四期 · 云端同步与冲突仲裁:离线可写、多端一致的工程解法
java·微信小程序
事已至此先睡覺吧28 分钟前
第三篇:Java 流程控制详解:条件判断、循环与跳转语句
java·开发语言
毕业设计70329 分钟前
(免费领源码) SpringBoot 游戏交易平台17600-java、PHP、python、C#、小程序、大数据、单片机、网络工程等)
java·spring boot·mysql·决策树·mybatis·idea·推荐算法
一 乐36 分钟前
自习室座位预约管理系统|基于springboot + vue自习室座位预约管理系统(源码+数据库+文档)
java·vue.js·spring boot
此时不提桶,更待何时1 小时前
02-02-B-AQS与JUC锁面试与生产事故实战
java
音符犹如代码1 小时前
Kafka 接入 AI 的三条路线:MCP 提案、会话记忆与实时上下文
java·大数据·ai·kafka
vx_BS813301 小时前
【项目编号:project51629】Spring Boot 乡村自来水缴费系统:把抄表、水费生成与在线缴费做成一条数字化闭环
java·spring boot·eclipse·tomcat·maven
qq_269506751 小时前
第29课-Servlet基础
java
毅炼1 小时前
不写多语言 SDK,怎么让 Python、Go、Node 服务接入注册中心?
java·后端·系统架构·gateway
2501_937860941 小时前
上篇:网络编程基础与UDP套接字编程
java·网络·计算机网络