当前位置:

首页 > 编程开发 > maven 打包命令怎么用?常用选项与执行示例

maven 打包命令怎么用?常用选项与执行示例

详细介绍 Maven 中 mvn package 命令的具体用法,包括清理构建、跳过测试、指定配置文件等常用选项,并提供单模块与多模块项目的实际执行示例,帮助开发者高效完成项目打包。

本文目录

    在 Java 项目开发中,将源代码编译并生成可部署的 JAR 或 WAR 文件是交付前的关键步骤。Maven 提供的 mvn package 命令能自动完成编译、测试和打包全过程,确保产物符合标准目录结构。掌握该命令及其常用选项,可以避免手动复制文件的错误,并显著缩短构建时间。下面展示一个标准的 Spring Boot 项目打包后的效果,生成的 JAR 文件位于 target 目录下。

    maven 打包命令怎么用?常用选项与执行示例

    target目录下生成的JAR文件及class文件结构

    Maven 的生命周期包含 validate、compile、test、package 等阶段。执行 package 时,Maven 会依次执行之前的所有阶段。这意味着如果代码编译失败或单元测试未通过,打包过程会自动终止。理解这一机制有助于排查构建失败的原因,而不是仅仅关注最终的包文件。

    开始操作前,请确保本地已安装 JDK 和 Maven,并在命令行中输入 mvn -v 确认环境正常。进入项目根目录,即包含 pom.xml 文件的文件夹,即可执行后续命令。

    1. 执行基础打包命令

    在项目根目录下打开终端或命令行工具,输入以下命令并回车:

    mvn package
    

    观察控制台输出,你会看到 Maven 依次执行 resources、compile、testResources、testCompile、test 和 package 插件目标。当出现 BUILD SUCCESS 字样时,表示打包成功。此时,打开项目下的 target 目录,可以看到生成的 JAR 或 WAR 文件。这是最基础的用法,适用于日常开发中的快速验证。

    maven 打包命令怎么用?常用选项与执行示例

    1. 执行基础打包命令

    2. 清理旧构建并重新打包

    如果之前构建过项目,target 目录中可能残留旧的类文件或配置。为了确保当前打包的是最新代码,通常建议先清理再打包。使用 clean 生命周期阶段可以删除 target 目录。

    输入以下组合命令:

    mvn clean package
    

    执行后,Maven 会先删除 target 文件夹,然后重新创建并执行完整的构建流程。这种做法能避免因缓存导致的类冲突或资源未更新问题,是发布正式版本前的推荐操作。

    maven 打包命令怎么用?常用选项与执行示例

    控制台显示清理旧构建并重新打包的过程

    3. 跳过测试以加速打包

    在持续集成或紧急修复场景中,单元测试可能耗时较长。如果确信代码逻辑无误,可以通过参数跳过测试阶段,直接进行编译和打包。

    使用 -DskipTests 参数:

    mvn clean package -DskipTests
    

    注意,该参数仅跳过测试用例的执行,但仍会编译测试代码。若需完全跳过测试代码的编译和执行,可使用 -Dmaven.test.skip=true。观察控制台,你会发现 Tests run 相关的日志消失,构建速度明显提升。但需谨慎使用此选项,确保不会将有缺陷的代码部署到生产环境。

    4. 指定特定配置文件打包

    许多项目区分开发、测试和生产环境,不同环境对应不同的数据库地址或 API 密钥。Maven 允许通过 Profile 机制切换配置。

    假设 pom.xml 中定义了 id 为 prod 的 Profile,执行以下命令激活它:

    mvn clean package -P prod
    

    控制台会显示 The following profiles are active: prod。此时生成的包将包含生产环境的配置文件。若不指定 -P 参数,Maven 默认使用激活状态为 true 的 Profile 或无 Profile 的默认配置。这种方式实现了同一套代码在不同环境下的灵活部署。

    maven 打包命令怎么用?常用选项与执行示例

    激活prod Profile进行打包的命令与反馈

    5. 多模块项目选择性打包

    对于大型多模块项目,全量打包可能浪费资源。如果只修改了某个子模块,可以指定该模块进行打包。

    使用 -pl (projects) 和 -am (also make) 参数:

    mvn clean package -pl module-name -am
    

    其中 module-name 是子模块的 artifactId。-am 确保该模块依赖的其他内部模块也会被先构建。观察输出日志,Maven 只会构建指定的模块及其依赖链,其他无关模块将被跳过。这在微服务架构或大型单体应用中能极大提高迭代效率。

    最后,检查 target 目录下的产物大小和内容,确认是否包含预期的类和资源文件。保留包含 pom.xml 的项目根目录作为工作区,以便后续进行 install 或 deploy 操作。通过熟练运用这些选项,你可以更精准地控制 Maven 的构建行为,适应不同的开发节奏。

    maven 打包命令怎么用?常用选项与执行示例

    多模块项目中指定模块及其依赖的构建逻辑

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发 maven Java构建
    相关文章 更多
    Java单元测试入门:使用JUnit 5编写第一个测试用例
    Java单元测试入门:使用JUnit 5编写第一个测试用例

    面向初学者的JUnit 5实用入门指南。从测试概念、Maven依赖配置,到手把手编写首个单元测试用例及断言验证,助你掌握Java单元测试的核心流程。

    maven配置镜像和仓库区别及正确配置方法
    maven配置镜像和仓库区别及正确配置方法

    详细介绍 Maven 配置镜像与仓库的区别以及正确的配置步骤,帮助读者快速掌握实践操作。

    maven打包跳过测试命令及使用方法
    maven打包跳过测试命令及使用方法

    遇到Maven打包慢?本文详解如何通过-DskipTests和-Dmaven.test.skip=true快速跳过测试,并对比两者区别及IDE中的设置方法,助你高效构建项目。

    jenkins自动部署jar包教程及完整操作流程
    jenkins自动部署jar包教程及完整操作流程

    手把手教你配置Jenkins自动部署Java应用。涵盖Git源码管理、Maven构建配置、SSH远程执行脚本及JAR包替换重启的全流程操作,解决手动部署繁琐易错的问题。

    如何优化 Maven 多模块项目的测试执行效率
    如何优化 Maven 多模块项目的测试执行效率

    如何让 Ma ven 多模块项目的测试从“全量扫描”变成“靶向打击”?这篇内容会围绕变更感知与依赖分析,给出本地提速策略、增量测试原理以及 mvn -pl -amd 等核心命令的工程化用法,目标是把小时级的测试压缩到分钟级。 在多模块 Ma ven 项目里,全量跑一遍 mvn test 往往令人头疼

    CentOS如何安装配置maven?
    CentOS如何安装配置maven?

    一. 下载 Ma ven的安装其实不复杂,但有几个关键点需要注意。首先,得从官方渠道拿到安装包——直接访问Ma ven的官方下载页面,找到对应版本就行。这里我们用的是3.3.9版本,比较经典。 二. 解压 下载完成后,用一条命令就能搞定解压:tar -zxvf apache-ma ven-3.3.9

    Maven配置失败怎么解决?安装问题全攻略
    Maven配置失败怎么解决?安装问题全攻略

    答案:Maven配置失败多因路径或JDK问题,需正确设置MAVEN_HOME、JAVA_HOME及Path,确保JDK安装并配置国内镜像源解决依赖下载问题,IDE中需手动指定Maven路径。

    Maven启动Jetty服务器命令详解
    Maven启动Jetty服务器命令详解

    Toeffectivelyutilizethemvnjetty:runcommand,followtheserevisedstepstosetupandrunyourwebprojectwithMavenandJetty:Step1:BeginbycreatingawebprojectusingMaven.FordetailedinstructionsonhowtogenerateaMavenwebprojectonWi

    Java Maven构建工具:从零到一打造复杂项目
    Java Maven构建工具:从零到一打造复杂项目

    JavaMaven构建工具:从零到一打造复杂项目Maven简介Maven是一个开源构建管理工具,用于管理Java项目的构建、测试和部署过程。它采用基于XML的项目描述文件(POM),并提供了丰富的插件生态系统来支持不同任务的自动化。零基础构建Maven项目创建Maven项目安装Maven,并在系统环境变量中添加M2_HOME和PATH。使用Maven命令创建新项目:mvnarchetype:generate-DgroupId=com.example-Dartif

    Java Maven构建工具:深入剖析构建生命周期
    Java Maven构建工具:深入剖析构建生命周期

    JavaMaven构建工具通过执行构建生命周期来构建项目,包括:验证、编译、测试、打包、验证、安装和部署。通过使用命令mvn[goal]执行构建目标,例如mvncompile、mvntest或mvninstall。以下是一些常见的构建目标示例:清理、编译、单元测试、打包、安装到本地仓库、部署到远程仓库。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。