Maven Cheat Sheet 手抄:从入门到无语

落日之舞姬 2025-01-11T18:00:12+08:00
0 0 205

简介

Maven 是一个功能强大的构建工具,它能够自动化构建、测试和部署项目。本文将介绍一份 Maven Cheat Sheet,从入门到无语,帮助您更好地使用 Maven。

环境搭建

  1. 下载 Maven:从 Apache Maven 官网 下载最新版本的 Maven,并解压到本地。
  2. 设置环境变量:将 Maven 的 bin 目录添加到系统的 PATH 环境变量中,确保可以在命令行中直接运行 Maven 命令。
  3. 验证安装:在命令行输入 mvn --version,如果成功显示 Maven 的版本信息,表示安装成功。

Maven 基本概念

  1. POM(Project Object Model):项目对象模型,Maven 使用 POM 文件来管理项目。
  2. 依赖管理:使用 <dependencies> 目录来定义项目的依赖关系,Maven 将自动下载和管理依赖。
  3. 构建生命周期:Maven 定义了一系列阶段(Phase),以及每个阶段执行的插件(Plugin),从而实现了自动化构建的能力。
  4. 仓库(Repository):Maven 将所有的构件(Artifact)存储在仓库中,分为本地仓库和远程仓库两种。

Maven 常用命令

  1. mvn clean:清理工程中生成的文件和目录。
  2. mvn compile:编译源码。
  3. mvn test:运行测试。
  4. mvn package:打包编译后的项目。
  5. mvn install:将打包后的文件安装到本地仓库。
  6. mvn deploy:将打包后的文件上传到远程仓库。

Maven 依赖管理

  1. <dependencies>:在 POM 文件中通过 <dependencies> 标签定义项目的依赖关系。
  2. <dependency>:在 <dependencies> 中使用 <dependency> 标签定义具体的依赖项。
  3. <scope>:通过 <scope> 标签可以定义依赖项的作用范围(如 compile、test、provided 等)。
  4. <version>:使用 <version> 标签指定依赖项的版本。

Maven 插件

  1. 常用插件:Maven 提供了大量的插件,如编译插件、打包插件、测试插件等,可以通过在 POM 文件中配置来使用。
  2. 插件配置:通过 <plugins> 标签来配置插件,每个插件可以有多个目标(Goal),通过目标可以执行插件的具体操作。
  3. 常用插件示例:
    • maven-compiler-plugin:编译插件,可以指定 Java 编译版本。
    • maven-surefire-plugin:测试插件,用于运行项目的单元测试。
    • maven-jar-plugin:打包插件,用于将项目打包成 JAR 文件。

Maven 生命周期

  1. Maven 定义了三套相互独立的生命周期:
    • Clean Lifecycle:清理生命周期,用于清理项目。
    • Default Lifecycle:默认生命周期,用于构建项目。
    • Site Lifecycle:站点生命周期,用于生成项目的站点文档。
  2. 生命周期阶段示例:
    • Clean:clean、pre-clean、post-clean。
    • Compile:validate、initialize、generate-sources、compile、process-sources、generate-resources、process-resources、...。
    • Test:test、prepare-package、...。

Maven 仓库

  1. 本地仓库:位于本地机器上的仓库,通常位于用户目录下的 .m2 文件夹中。
  2. 远程仓库:Maven 官方维护的中央仓库是默认的远程仓库,也可以配置其他远程仓库。
  3. Repository 标签:在 POM 文件中使用 repositories 标签可以定义远程仓库的配置。
  4. Proxy 标签:如果需要使用代理服务器访问远程仓库,可以在 settings.xml 文件中配置 proxy 标签。

结语

本文介绍了一份 Maven Cheat Sheet,从初步搭建环境到常用命令和概念的讲解,希望能够帮助您更好地使用 Maven。当然,Maven 还有更多功能和配置的细节,需要您深入学习和实践。祝您在 Maven 的世界里学有所成!

相似文章

    评论 (0)