Maven入门教程

Maven是一个项目管理工具,负责构建过程,包括清理、编译、测试和打包等。文章详细介绍了Maven的安装配置步骤,如下载、设置环境变量和验证安装。Maven的目录结构、优点,如依赖管理和中央仓库,以及约定的项目目录结构也进行了讲解。此外,文中提到了Maven的生命周期,如clean、default和site,以及不同作用域的依赖管理。最后,文章概述了POM、继承、聚合等Maven的核心概念。
摘要由CSDN通过智能技术生成

一、Maven是什么?

        Maven就是项目管理工具,用来构建项目的。也就是清理、编译、测试、运行、打包、安装整个过程都交给Maven来管理,整个过程就是构建。

二、Maven安装与配置

        1、官网下载

        官网下载:Maven – 下载 Apache Maven  (版本看个人需求)

        然后解压(gz包或者zip包)到最好没有中文没有空格的路径。目录结构如下:

 2、配置环境变量

        Maven本身就是基于Java写的,所以在安装配置之前,有必要将Java的运行环境安装配置好,JDK安装好。

        Windows环境如下:

        配置内容同JDK的配置内容一样,也是两部分:一部分是在系统环境变量或者用户环境变量中配置一个MAVEN_HOME;另一部分也是将Maven里面的bin目录追加到Path环境变量后面。

         3、测试安装是否成功:

        win+r  然后 cmd 进入命令行 输入mvn -version 或者 maven -v 查看安装的Maven信息以及JDK信息,成功打印说明配置成功。

三、Maven目录结构

  1.  bin:Maven运行脚本、命令

在命令行输入任何一条 mvn 命令时,实际上就是在调用这下些脚本。不带 cmd 后缀的命令就是 UNIX 平台的 shell 脚本,带 cmd 的是基于Windows平台的脚本。

      2. boot:该目录只包含一个文件,plexus-classworlds-2.7.0.jar(plexus-classworlds 是一个类加载器框架,Maven使用该框架加载自己的类库)。

      3. conf:配置文件 setting.xml 文件,修改该文件就可以在机器上全局的制定Maven的行为。但一般情况下,更倾向于复制该文件到 ~(用户User目录)/.m2/ 目录下,然后修改该文件,在用户范围内制定Maven的行为。

      4.lib:包含Maven运行时所需要的Java类库,包括第三方的依赖类库。用户可以在这个目录中找到Maven内置的超级POM:

       5. LICENSE.TXT:记录了 Maven 使用的软件许可证 Apache License Version 2.0。

       6. NOTICE.txt:记录了maven包含的第三方软件。
       7. README.txt:记录了maven的简要介绍。包括安装需求及如何安装的简要指令等。

四、Maven 优点

  1.  Maven 不仅是构建工具,它还是依赖管理工具和项目管理工具,提供了中央仓库,能够帮我们自动下载构件。
  2. 为了解决的依赖的增多,版本不一致,版本冲突,依赖臃肿等问题。他通过一个坐标系统来精准定位每一个构件(artifact)。
  3. 还能帮助我们分散在各个角落的项目信息,包括项目描述,开发者列表、版本控制系统、许可证、缺陷管理系统地址。
  4. Maven还为全世界的开发者提供了一个免费的中央仓库,在其中几乎可以找到任何的流行开源软件(下载贼慢,支持正版 _ 但我用镜像!!!)。通过衍生工具(Nexus)我们还能对其进行快速搜索。
  5. Maven 对于目录结构有要求,约定优于配置,用户在项目切换就省去了学习成本。

五、关于Maven项目(工程)约定目录结构

Maven约定目录结构.

每一个maven项目在磁盘中都是一个文件夹(项目-Hello)

Hello/

        --/src

        ------/main                     #存放主程序java代码和配置文件

        ------------/java               #程序包和包中的java文件

        ------------/resource       #java程序中要使用的配置文件

        ------/test                      #测试程序的代码文件(可以没有)

        ------------/java              #测试程序包和包中的java文件

        ------------/resource      #测试程序中要使用的配置文件

        -----/pom.xml               #maven的核心文件(maven项目必须有)

六、Maven 常用命令

  •                 
    • mvn clean  清理编译后的目录
    • mvn compile  编译,只编译main目录,不编译test中代码
    • mvn test-compile  编译test目录中代码
    • mvn test  运行test里边代码测试
    • mvn package  打包
      • Java项目打成 jar 包
      • web 项目打成war包
    • mvn install  发布部署项目到本地仓库,在本地Repository中安装 jar ,供其他工程使用
    • tomcat run  一键构建项目
    • mvn site  生成项目的相关文档和生成文档相关的元素,包括 name、url 和description等

七、Maven 的“三大生命周期”

  1.  clean Lifecycle:在进行真正的构建之前进行一些清理工作。mvn clean

clean的目的是清理项目。
每套生命周期都由一组阶段(Phase)组成,我们平时在命令行输入的命令总会对应于一个特定的阶段。比如,运行mvn clean ,这个的clean是Clean生命周期的一个阶段。有Clean生命周期,也有clean阶段。
包含3个阶段:
1.pre-clean 执行一些清理前需要完成的工作
2.clean 清理上一次构建过程中生成的文件,比如编译后的class文件等
3.post-clean 执行一些清理后需要完成的工作

       2.  default Lifecycle: 构建的核心部分,编译,测试,打包,部署等等。

generate-resources: 产生主代码中的资源在classpath中的包
process-resource: 复制并处理资源文件,至目标目录,准备打包。
compile: 编译项目的主源码.一般来说:编译src/main/java目录下的java文件至项目输出的主classpath目录中
test-compile:编译项目的测试代码,是编译src/test/java目录下的java文件至项目输出的测试classpath目录中
test: 使用单元测试框架运行测试,测试代码不会被打包或部署.
package:打包成可发布的格式
install:将包安装到Maven本地仓库,供本地其他Maven项目使用
deploy:将最终的包复制到远程仓库,供其他开发人员和Maven项目使用

PS:运行任何一个阶段的时候,它前面的所有阶段都会被运行,这也就是为什么我们运行mvn install 的时候,代码会被编译,测试,打包。此外,Maven的插件机制是完全依赖Maven的生命周期的,因此理解生命周期至关重要。

        3.  site Lifecycle: 生成项目报告,站点,发布站点。
             目的:建立和发布项目站点


pre-site:执行一些在生成项目站点之前需要完成的工作.
site 生成项目站点文档
post-site 执行一些在生成项目站点之后需要完成的工作.
site-deploy :将生成的项目站点发布到服务器上

八、scope依赖作用域

也可以称作依赖范围:maven中的的依赖,会根据场景和所处阶段发生变化。scope属性有五种:

注:system_不推荐使用,使用system作用域不会去本地仓库寻找依赖,要指定本地绝对路径。

九、maven能够实现自动化构建.核心maven的9个核心概念

  1. POM:一个文件 名称为pom.xml,pom翻译过来叫项目对象模型

  2. 约定的目录结构:maven项目的目录和文件的位置都是规定的

  3. 坐标:是一个唯一的字符串,用来表示资源

  4. 依赖管理:管理项目中用到的jar文件

  5. 仓库管理:资源存放位置

  6. 生命周期:maven工具构建项目的过程就是它生命周期

  7. 插件和目标:执行maven构建的时候用的工具叫插件

  8. 继承

  9. 聚合

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白橘大大

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值