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

相关推荐
2301_780789662 小时前
跨平台适配!SDK 游戏盾兼容全终端游戏场景
java·网络·ddos
学长毕设3 小时前
基于springboot的食品仓库管理系统
java·spring boot·后端
步行cgn3 小时前
FormHttpMessageConverter 详解:Spring MVC 中表单数据的读写转换器
java·spring·mvc
龙亘川3 小时前
构建城市公共安全数字底座:亘川智城智慧安防系统全维度解读
java·大数据·开发语言·人工智能·信息可视化
金銀銅鐵3 小时前
[Java] 用 CLI 展示 EnumMap 增删键值对时的内部变化
java·源码·ai编程
秋天的怀念_David4 小时前
第二十二夜 · 数字迷雾
java·程序人生·算法
Raas1004 小时前
AI网关部署方案?从部署到上线全流程
java·开发语言·人工智能·gateway·ai网关·企业级ai网关·企业级ai产品
niucloud-admin4 小时前
NIUCLOUD PHP SAAS上门家政使用文档:城市管理
java·前端·php
霸道流氓气质5 小时前
智能客服组件:分层意图识别、RAG Advisor 与人工转接状态机的 Vue3 + Spring AI 生产级实战
java·人工智能·spring
captain3765 小时前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis