Maven 常用命令记录

69 阅读3分钟

mvn clean package -Dmaven.test.skip=true

Maven 常用命令记录

Maven 是一个强大的项目管理和构建工具,广泛应用于 Java 项目的构建、依赖管理和项目信息管理。以下是几个常用的 Maven 指令及其用途说明,帮助开发者更高效地进行项目构建和管理。

手动执行 Maven 命令的原因

在使用 IntelliJ IDEA 内置的 Maven 插件时,可能会遇到缓存问题,导致依赖项更新不及时或构建结果不符合预期。为了避免这些问题,建议直接通过命令行手动执行 Maven 命令。这种方式可以确保每次构建都从最新的依赖库开始,并且避免了 IDE 缓存带来的潜在问题。

常用 Maven 命令

1. mvn clean

  • 作用:清理项目生成的编译输出文件。
  • 描述:该命令会删除目标目录(通常是target),确保在下一次构建时没有残留的旧文件。这对于确保构建环境的干净非常重要。
  • 使用场景:每次构建前执行,尤其是在发布新版本之前。
mvn clean

2. mvn compile

  • 作用:编译项目的源代码。
  • 描述:将Java源文件编译为字节码,并放置在target/classes目录中。
  • 使用场景:当只需要编译而不打包或运行测试时使用。
mvn compile

3. mvn test

  • 作用:运行单元测试。
  • 描述:执行所有以Test结尾的类中的测试方法,并生成测试报告。
  • 使用场景:验证代码修改是否破坏了现有功能。
mvn test

4. mvn package

  • 作用:打包项目。
  • 描述:根据项目的配置(如pom.xml)将编译后的代码打包成可分发格式(如jar、war等)。默认情况下也会执行test生命周期阶段。
  • 使用场景:准备部署或分发项目时使用。
mvn package

5. mvn install

  • 作用:安装项目到本地仓库。
  • 描述:将打包后的文件安装到本地Maven仓库中,使得其他项目可以引用此项目作为依赖。
  • 使用场景:开发多模块项目时,需要共享模块间的依赖。
mvn install

6. mvn clean package -Dmaven.test.skip=true

  • 作用:跳过测试并打包项目。
  • 描述:有时为了加快构建速度或者在CI环境中不需要执行测试时,可以通过设置参数-Dmaven.test.skip=true来跳过测试阶段直接打包。
  • 使用场景:持续集成流水线中快速构建镜像或制品库更新。
mvn clean package -Dmaven.test.skip=true

7. mvn deploy

  • 作用:将打包后的项目部署到远程仓库。
  • 描述:将打包后的文件上传到远程仓库(如Nexus、Artifactory等),以便其他团队成员或CI/CD流水线可以访问和使用。
  • 使用场景:发布版本或共享制品库时使用。

解决缓存问题的额外建议

为了避免缓存问题,除了手动执行 Maven 命令外,还可以采取以下措施:

  • 清除本地仓库缓存:定期清理本地 Maven 仓库(通常位于~/.m2/repository),确保依赖项是最新的。

    rm -rf ~/.m2/repository/*
    
  • 强制更新依赖:使用-U参数强制更新快照依赖。

    mvn clean install -U
    
  • 禁用IDE缓存:在 IntelliJ IDEA 中,可以在设置中禁用 Maven 缓存,确保每次构建都从命令行执行。

通过以上方法,可以有效避免因缓存问题导致的构建失败或依赖更新不及时的情况,确保项目构建的稳定性和可靠性。