maven 工具 clean、compile、package、install、deploy 常用命令使用区别

在 Maven 中,clean, compile, 和 deploy 是常用的生命周期阶段命令,它们各自有不同的用途和含义。下面是这些命令的详细解释:

1. mvn clean

含义:

clean 阶段用于清理项目构建过程中生成的文件。
作用:

删除 target 目录(默认情况下)中的所有文件和目录。

清理任何之前构建过程中生成的输出文件,确保下一次构建是从一个干净的状态开始。

使用场景:

在重新构建项目之前,通常会先执行 clean 命令,以避免旧的构建产物影响新的构建。

当遇到构建问题时,执行 clean 可以帮助解决由于旧文件导致的问题。

2. mvn compile

含义:

compile 阶段用于编译项目的源代码。
作用:

编译 Java 源代码(位于 src/main/java 目录下)到字节码(.class 文件),并将这些文件放置在 target/classes 目录中。

不包括测试代码的编译。
使用场景:

当您需要编译项目源代码但不需要运行测试或打包时,可以使用 compile 命令。

通常在开发过程中频繁使用,以检查代码是否能够成功编译。

3. mvn deploy

含义:

deploy 阶段用于将构建好的构件(如 JAR、WAR 等)部署到远程仓库。
作用:

执行 package 阶段(如果尚未执行),将项目打包成指定格式(如 JAR、WAR)。

将打包好的构件上传到配置的远程仓库(如 Nexus 或 Artifactory)。

通常用于发布版本,以便其他项目可以引用该版本。
使用场景:

当您完成了一个版本的开发,并希望将其发布到远程仓库供其他项目使用时。

在持续集成/持续部署(CI/CD)流程中,自动将构建好的构件部署到远程仓库。

其他常用命令

mvn package:
含义:

package 阶段用于将编译后的代码打包成可分发的格式(如 JAR、WAR)。
作用:

包括 compile 阶段的所有操作。

将编译后的代码打包成指定格式,并放置在 target 目录中。
使用场景:

当您需要生成可分发的构件时,例如 JAR 文件或 WAR 文件。

mvn install:

含义:

install 阶段用于将构建好的构件安装到本地仓库。
作用:

包括 package 阶段的所有操作。

将打包好的构件安装到本地 Maven 仓库(通常是 ~/.maven/repository)。
使用场景:

当您需要将当前项目作为依赖项供其他本地项目使用时。

在多模块项目中,子模块之间经常使用 install 来共享构件。

mvn test:

含义:

test 阶段用于运行项目的单元测试。
作用:

包括 compile 阶段的所有操作。

编译并运行测试代码(位于 src/test/java 目录下)。
使用场景:

在开发过程中,确保代码质量,验证功能正确性。
总结
mvn clean:清理构建产物。
mvn compile:编译项目源代码。
mvn package:打包项目为可分发的格式。
mvn install:将打包好的构件安装到本地仓库。
mvn deploy:将打包好的构件部署到远程仓库。

这些命令是 Maven 生命周期中的关键阶段,通过组合使用这些命令,您可以有效地管理项目的构建、测试和发布过程。

相关推荐
胖咕噜的稞达鸭10 分钟前
自定义shell命令行解释器自制
java·开发语言
q***33373 小时前
oracle 12c查看执行过的sql及当前正在执行的sql
java·sql·oracle
Y***h1877 小时前
第二章 Spring中的Bean
java·后端·spring
8***29317 小时前
解决 Tomcat 跨域问题 - Tomcat 配置静态文件和 Java Web 服务(Spring MVC Springboot)同时允许跨域
java·前端·spring
CoderYanger7 小时前
优选算法-栈:67.基本计算器Ⅱ
java·开发语言·算法·leetcode·职场和发展·1024程序员节
q***06297 小时前
Tomcat的升级
java·tomcat
多多*7 小时前
Java复习 操作系统原理 计算机网络相关 2025年11月23日
java·开发语言·网络·算法·spring·microsoft·maven
青云交7 小时前
Java 大视界 -- Java 大数据在智能物流无人配送车路径规划与协同调度中的应用
java·spark·路径规划·大数据分析·智能物流·无人配送车·协同调度
d***81727 小时前
解决SpringBoot项目启动错误:找不到或无法加载主类
java·spring boot·后端
ᐇ9598 小时前
Java集合框架深度实战:构建智能教育管理与娱乐系统
java·开发语言·娱乐