Maven 入门

Maven图标

Maven 简介

What Maven

Maven 是 Apache 软件基金会组织维护的一款自动化构建工具,专注服务于 Java 平台的项目构建和依赖管理。它具有以下特征:

  1. 依赖管理:Maven 自动处理项目依赖。当你在项目中声明一个依赖时,Maven 会自动下载所需的库和它们的依赖项,极大地简化了库管理过程。
  2. 标准化构建过程:它提供了一个标准化的构建生命周期来编译、测试和打包Java 代码,这使得开发人员更容易理解和维护不同的项目。
  3. 项目模型:Maven 使用 Project Object Model (POM) 来描述项目和其依赖,这是一个基于XML的文件,包含了项目的所有配置信息。
  4. 插件式架构:通过使用插件,Maven 可以扩展其功能来支持各种额外的任务,比如代码分析、文档生成等。
  5. 中央仓库:Maven 有一个中央仓库(Maven Central Repository),其中包含了大量常用的库。这简化了依赖管理,因为大多数常见的库都可以在不需要任何额外配置的情况下使用。

Why Maven

  1. 工程轻量化:在今天的 JavaEE 开发领域,有大量的第三方框架和工具(以 Jar 包形式)可以供我们使用。对每个工程进行手动添加 Jar 包操作,会造成大量重复文件(一个 Jar 包在多个工程里被反复使用)的情况,造成资源臃肿和空间浪费。而 Maven 只需要每个 Jar 包在本地仓库中保存一份,当需要使只需简单引用一下即可,大大缩小了空间使用率,使工程变得更轻巧灵活。
  2. Jar 包依赖关系:当手动添加 Jar包时,如果该 Jar 包依赖于某些其他 Jar 包,没有添加这些 Jar 包会导致该 Jar包不能正常工作。而使用 Maven 引用 Jar 包时,它会自动引用该 Jar 包的上游依赖,从而使用者不必理解 Jar 包之间的依赖关系。
  3. 获取第三方Jar包:Maven提供的中央仓库可以让我们更方便的下载我们需要的Jar 包。只需要在项目中添加一个Jar 包,Maven 就会自动从中央仓库进行下载,并同时下载这个 Jar 包所依赖的其他 Jar 包。
  4. 工程模块化:开发时,一个大型 Project 被划分为多个较小的模块,每个模块都是一个独立的 Maven Project,具有自己的 pom.xml 文件。这种方法使得管理大型 Project 变得更加容易,因为它允许独立开发、测试和维护各个模块。

Maven 安装

  1. 方式一官网下载下载地址(推荐)
    从官网左边的 Menu 中找到 Download,下载最新版本的 Maven(需下载 Binary archive),解压在合适的地方。如果使用如 IDEA 的 Intelij 这样的 IDE,则需要在设置中(以 Intelij 为例,在Preferences | Build, Execution, Deployment | Build Tools | Maven中)找到 Maven home path,然后换成本地解压好的 Maven 的路径。
  2. 方式二IDE 集成
    许多 IDE 如 IDEA 的 Intelij 都集成 Maven。不过如果需要在 Terminal 里使用 Maven 命令,需要将集成 Maven 的路径(和 bin 文件夹路径)加入环境变量(以 mac 上的 Intelij 为例,Bundled Maven 路径一般为 /Applications/IntelliJ IDEA CE.app/Contents/plugins/maven/lib/maven3)。

无论哪种方式,如果需要在 Terminal 中使用 Maven 命令,都需要将Maven 的路径(和 bin 文件夹路径)加入环境变量。步骤为:

  1. 定义新的 MAVEN_HOME 变量
MAVEN_HOME=/.../apache-maven-X.X.X
  1. 加入 bin 文件夹
MAVEN_HOME=$MAVEN_HOME/BIN:$MAVEN_HOME
  1. 将 MAVEN_HOME 变量加入 PATH 中
PATH=...:$MAVEN_HOME:$PATH

通过以上步骤,重启 Terminal 之后,就可以正常使用 Maven 的命令啦~


Maven Project 结构

Project结构
其中

  1. 根目录 以 Project 命名
  2. src 文件夹位于根目录中,储存项目源码
  3. main 文件夹位于 src 中,为主程序目录
  4. test 文件夹位于 src 中,为测试程序目录
  5. java 文件夹位于 main/test 中,为主程序/测试程序下的 Java 源文件目录
  6. resources 文件夹位于 main/test 中,为主程序/测试程序下的资源文件目录
  7. target 文件夹位于根目录中,储存编译结果(.class文件)
  8. pom.xml 文件位于根目录中,包含了构建项目所需的所有信息和配置。

Maven 常用命令介绍

通过Terminal cd 至 Project repository,我们可以使用一些命令对 Project 进行编译/测试/运行/打包/安装/部署。以下为 Maven 的常见指令:

  1. mvn compilemvn compile 是 Maven 的编译命令,它的作用是将 src/main/java 文件编译为 .class 文件输出到target目录下
  2. mvn testmvn test 是 Maven 的测试命令,它会执行 src/test/java 下的单元测试类。
  3. mvn cleanmvn clean 是 Maven 的清理命令,它会删除 target 文件夹以及文件。
  4. mvn packagemvn package 是Maven的打包命令,它会对 Java Project 打成 Jar 包,对 Java Web Project 打成 War 包。
  5. mvn installmvn install 是Maven的安装命令,它会将预先打包的 Jar 包或者 War 发布到本地仓库。

Maven 对项目构建有三套独立的生命周期,分别为:

  • Clean Lifecycle:在进行真正构建前进行一些清理工作。
  • Default Lifecycle:构建的核心部分,包括编译,测试,打包,部署等。
  • Site Lifecycle:生成项目报告,站点,发布站点。

他们是互相独立的,你可以仅仅调用 clean 来清理工作目录,仅仅调用 site 来生成站点。当然你也可以直接运行mvn clean install site 运行所有这三套生命周期。

当执行后面的命令时,前面的命令也会被执行。

文档将持续更新…

  • 24
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值