Maven 常用命令

在开发中一些公共组件会打包jar上传到公司的maven私服上,其它团队从私服下载jar包。

如果要发布到私服则执行mvn deploy命令,如果仅是在本地开发执行mvn install命令发布到本地仓库即可。

在 Maven 中,打包和发布项目的过程涉及到不同的命令和操作,这些操作可以帮助你将项目构建成可重用的 JAR 文件,并将其发布到本地或远程 Maven 仓库。以下是对这些操作和常用命令的详细解释:

1. Maven 常用命令

1.1 **`mvn clean`**:

  • **作用**:清理项目的构建输出目录(通常是 `target` 目录)。

  • **用途**:在重新构建项目之前,清理上次构建的遗留文件,确保构建过程是干净的。

1.2 **`mvn compile`**:

  • **作用**:编译项目的源代码。

  • **用途**:编译 `src/main/java` 目录下的 Java 源代码,生成 `.class` 文件。

1.3 **`mvn test`**:

  • **作用**:运行项目中的单元测试。

  • **用途**:执行 `src/test/java` 目录下的测试类,确保代码的正确性。

1.4 **`mvn package`**:

  • **作用**:将项目打包成 JAR 文件或 WAR 文件(根据项目的配置)。

  • **用途**:生成项目的可发布包,通常会在 `target` 目录下生成 `.jar` 或 `.war` 文件。

1.5 **`mvn install`**:

  • **作用**:将打包后的 JAR 文件安装到本地 Maven 仓库。

  • **用途**:将构建生成的 JAR 文件添加到本地 Maven 仓库(`~/.m2/repository`),供本地项目引用。

1.6 **`mvn deploy`**:

  • **作用**:将构建生成的 JAR 文件发布到远程 Maven 仓库(如公司私服或中央仓库)。

  • **用途**:上传构建的 JAR 文件到公司的 Maven 私服,以便其他团队或项目使用。需要在 `pom.xml` 文件中配置远程仓库信息。

1.7 **`mvn verify`**:

  • **作用**:运行所有的测试,包括集成测试,并验证构建的完整性。

  • **用途**:确保所有测试通过且构建是完整的。

1.8 **`mvn clean install`**:

  • **作用**:先清理项目,然后编译、测试并打包项目,最后将 JAR 文件安装到本地仓库。

  • **用途**:一个常用的命令组合,确保构建是干净的并且所有的代码更改都被包含在本地仓库中。

2. mvn install 过程详细说明

如果直接一开始就执行mvn install ,执行 mvn install 命令时,Maven 会按照项目的生命周期自动执行所有相关的构建阶段,包括打包。下面是 mvn install 命令的详细过程:

  • 清理(Clean)

    • 如果之前运行了 mvn clean,则会删除先前构建生成的文件。mvn install 不会自动执行 clean 阶段,但会确保使用最新的构建文件。
  • 编译(Compile)

    • 编译 src/main/java 目录下的 Java 源代码。生成的 .class 文件将被放置在 target/classes 目录中。
  • 测试编译(Test Compile)

    • 编译 src/test/java 目录下的测试源代码。生成的测试 .class 文件将被放置在 target/test-classes 目录中。
  • 测试(Test)

    • 执行项目中的单元测试(如果存在),确保代码的正确性。
  • 打包(Package)

    • 将编译后的代码、资源文件以及其他需要的文件打包成 JAR、WAR 或其他指定的格式。打包后的文件会生成在 target 目录中。
  • 验证(Verify)

    • 验证打包结果的完整性和正确性,确保构建是成功的。
  • 安装(Install)

    • 将打包生成的 JAR 文件安装到本地 Maven 仓库(~/.m2/repository)。这样本地其他项目就可以引用这个 JAR 文件作为依赖。

3. 总结

执行 mvn install 时,Maven 会执行整个生命周期的默认阶段,包括编译、测试、打包和安装。因此,你不需要单独执行 mvn package,Maven 会在 install 阶段自动完成打包操作。这个命令综合了构建的多个步骤,并将结果安装到本地仓库,便于本地项目引用。

相关推荐
anlogic39 分钟前
Java基础 8.18
java·开发语言
沐知全栈开发1 小时前
WebForms XML 文件详解
开发语言
练习时长一年1 小时前
AopAutoConfiguration源码阅读
java·spring boot·intellij-idea
阿巴~阿巴~2 小时前
冒泡排序算法
c语言·开发语言·算法·排序算法
源码宝3 小时前
【智慧工地源码】智慧工地云平台系统,涵盖安全、质量、环境、人员和设备五大管理模块,实现实时监控、智能预警和数据分析。
java·大数据·spring cloud·数据分析·源码·智慧工地·云平台
看到我,请让我去学习3 小时前
QT - QT开发进阶合集
开发语言·qt
weixin_307779133 小时前
VS Code配置MinGW64编译SQLite3库
开发语言·数据库·c++·vscode·算法
David爱编程3 小时前
面试必问!线程生命周期与状态转换详解
java·后端
LKAI.4 小时前
传统方式部署(RuoYi-Cloud)微服务
java·linux·前端·后端·微服务·node.js·ruoyi
HeyZoeHey4 小时前
Mybatis执行sql流程(一)
java·sql·mybatis