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 配置示例,方便你直接复制使用。

相关推荐
EXI-小洲6 小时前
Java 操作 Word:字符串替换、图片插入、动态生成表格与API接口下载
java·开发语言·spring boot·word
2601_961901707 小时前
SpringBoot使用Nacos进行application.yml配置管理
java·spring boot·spring
何以解忧,唯有..7 小时前
LangChain 工具调用(Tool Calling)实战指南
java·前端·langchain
QQ_21696290968 小时前
【源码编号:project79475】SpringBoot校内二手交易平台:商品发布、分类检索、留言交流、订单管理全流程实战
java·spring boot·后端
前端 贾公子9 小时前
第09章:上下文与记忆 (2)
java·服务器·前端
2601_962203519 小时前
Java进阶07集合(续)
java·开发语言
郑州光合科技余经理9 小时前
本地生活服务系统:模块边界与结算字段怎么拆
java·开发语言·前端·后端·系统架构·uni-app·php
roman_日积跬步-终至千里10 小时前
【数据治理(6)】DataOps 不是调度工具,而是让数据产品长期可信的运行机制
java·服务器·网络
落魄大学生之流水线上谋生计10 小时前
LangGraph 基本用法指南
java·windows·python·langchain
2601_9621284110 小时前
SpringBoot篇(缓存层)
java·spring boot·缓存