初见Maven

初见Maven

1. 什么是Maven

Maven是一个项目管理工具,它包含了一个项目对象模型(POM),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(DMS),和用来定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。

1.1 Maven 能解决什么问题

  1. 我们需要引用各种jar包,尤其是比较大的工程,引用的jar包往往有几十个乃至上百个,每用到一种jar包,都需要手动引入工程目录,而且经常遇到各种让人抓狂的jar包冲突,版本冲突。

  2. 我们辛辛苦苦写好了Java文件,可是只懂0和1的白痴电脑却完全读不懂,需要将它编译成二进制字节码。好歹现在这项工作可以由各种集成开发工具帮我们完成,Eclipse、IDEA 等都可以将代码即时编译。当然,如果你嫌生命漫长,何不铺张,也可以用记事本来敲代码,然后用javac命令一个个地去编译。

  3. 世界上没有不存在 bug的代码,计算机喜欢 bug就和人们总是喜欢美女帅哥一样。为了追求美为了减少bug,因此写完了代码,我们还要写一些单元测试,然后一个个的运行来检验代码质量。

  4. 再优雅的代码也是要出来卖的。我们后面还需要把代码与各种配置文件、资源整合到一起,定型打包,如果是web项目,还需要将之发布到服务器,供人蹂躏。

1.2 Maven依赖管理

依赖管理就是maven工程对jar包的管理过程,相较于传统的web项目来说:

  1. 传统的web项目,jar包就保存在项目中的lib中。
  2. 使用maven开发的web项目中,jar包不在项目中,保存在maven的jar包仓库。jar包坐标保存在pom.xml中,通过该配置文件来找到对应的jar包供开发者使用。

1.3 项目的一键构建

  1. 什么是构建?
    指的是项目从编译、测试、运行、打包、安装、部署整个过程都交给maven进行管理。
  2. 什么是一键构建?
    指的是整个构建过程,使用maven一个命令可以轻松完成整个工作。

2.Maven的安装及使用

2.1 Maven的安装

  1. 百度搜索maven的官网
    maven官网
  2. Download中选择zip下载
    在这里插入图片描述
  3. 解压至文件夹即可(文件夹名无中文无空格)

在解压后的maven文件夹中:

  1. bin目录中,保留着maven命令,主要用于构建项目。
  2. boot目录中,自身运行需要的类加载器。
  3. conf目录中,settings.xml是maven的主配置文件。
  4. lib目录中,保存着maven自身运行所需要的jar包。
  1. 对maven进行简单的配置
    在windows中配置环境变量,新建MAVEN_HOME,添加到path中即可。
    注意:Maven运行需要依赖java。

  2. 使用mvn -v 测试是否配置成功
    在这里插入图片描述

2.1.2 Maven仓库的种类

  1. 本地仓库:在maven的conf中的settings.xml中,52行存在一条配置Default:${user.home}/.m2/repository,安装完成maven后默认仓库创建在当前用户的home目录中。
    这个时候可以通过53行的这条配置<localRepository>/path/to/local/repo</localRepository>,在该标签内填写指定的路径即可。
  2. 中央仓库:是由 Maven 社区提供的仓库,其中包含了大量常用的库。这个仓库不需要配置,需要网络才能访问。
  3. 远程仓库(私服):在开发项目的过程中,由开发人员定制的仓库,可以本地上传文件至该库中。

2.1.3 Maven依赖搜索顺序

当我们执行 Maven 构建命令时,Maven 开始按照以下顺序查找依赖的库:

  1. 在本地仓库中搜索,如果找不到,执行2,如果找到了则执行其他操作。
  2. 在中央仓库中搜索,如果找不到,并且有一个或多个远程仓库已经设置,则执行4,如果找到了则下载到本地仓库中以备将来引用。
  3. 如果远程仓库没有被设置,Maven 将简单的停滞处理并抛出错误(无法找到依赖的文件)。
  4. 在一个或多个远程仓库中搜索依赖的文件,如果找到则下载到本地仓库以备将来引用,否则 Maven 将停止处理并抛出错误(无法找到依赖的文件)。

2.2 Maven项目标准目录结构

  1. Maven的java工程目录结构:
  • src
    • main
      • java (核心代码)
      • resources (配置文件)
    • test
      • java (测试代码)
      • resources (测试配置文件)
  1. Maven的web工程目录结构:
  • src
    • main
      • java (核心代码)
      • webapp (页面资源,js,css,图片等等)

2.3 Maven的常用命令

  1. mvn complie
    在cmd中运行这条命令会在项目的目录中创建target目录,该目录的目录结构和项目的目录结构一致,main目录中的java文件会被编译成class文件。
  2. mvn clean
    在cmd中运行这条命令会在项目的目录中删除target目录,使用场景多用于导入项目的时候,由于每个人的环境不同,所以先删除导入的项目中编译的文件,再重新创建。
  3. mvn test
    在cmd中运行这条命令会在项目的目录中创建target目录,该命令不仅会编译test目录下的代码,也会编译main中的代码。
  4. mvn package
    在cmd中运行这条命令会在项目的目录中创建target目录,该命令不仅会编译test目录下的代码,也会编译main中的代码,并在target目录中创建项目的打包文件,格式为war(在项目的pom.xml文件中<packaging></packaging>标签指定war)。
  5. mvn install
    该命令在mvn package命令的基础上,会在本地仓库建立该项目的jar包。

2.3.1 Maven生命周期

maven生命周期

2.3.2 Maven概念模型图

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值