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

相关推荐
段ヤシ.1 小时前
回顾Java知识点,面试题汇总Day13:数据库MySQL(持续更新)
java·数据库·mysql
W_LuYi1851 小时前
Tauri + Rust + Vue 3 打造极速轻量桌面应用
java·开发语言·vue.js·rust
小张小张爱学习2 小时前
Java基础面试题
java·开发语言
宋哥转AI2 小时前
Java后端转AI Agent:技术栈全景图与从ReAct到多Agent协作实战
java·人工智能·agent
Mr.Entropy2 小时前
ecplise 导出maven依赖jar
java·maven·jar
ANnianStriver2 小时前
PetLumina 05 — App 端 UI 效果应用
java·ui·ai编程
不懂的浪漫2 小时前
10|Netty native epoll 与零拷贝:从 Java NIO 再往下看一层![
java·netty·nio
plainGeekDev2 小时前
SharedPreferences → DataStore
android·java·kotlin
许彰午2 小时前
24_Java NIO核心组件
java·python·nio