Maven

*maven

1**.什么是maven**
maven是一个项目管理工具,也是一个依赖管理工具,它包含了一个项目对象模型 (POM:Project Object Model)。maven能明确的定义项目依赖的版本,maven提供了开发人员构建的一个完整的项目生命周期。在我看来,maven其实就是一个通过pom.xml文件的配置来获取jar包,而不用手动去添加jar包。

2.为什么使用maven
maven能帮助我们脱离对eclipse和idea的依赖,能让我们不使用eclipse和idea就能将项目打成jar包,Maven是跨平台的,Maven最大化的消除了构建的重复,Maven可以帮助我们标准化构建过程.所有的项目都是简单一致的,简化了学习成本。而且Maven不仅是构建工具,他还是一个依赖管理工具和项目信息管理工具.他还提供了中央仓库,能帮我们自动下载构件。使用Maven还能享受一个额外的好处,即Maven对于项目目录结构、测试用例命名方式等内容都有既定的规则,只要遵循了这些成熟的规则,用户在项目间切换的时候就免去了额外的学习成本,可以说是约定优于配置
3.maven的目录结构
目录结构
在这里插入图片描述

在这里插入图片描述
src:该目录主要存放的是项目的源代码文件。
target:该目录是项目编译后产生的一个目录,主要存放的是编译后的.class文件。
pom.xml:该文件是Maven项目的核心配置文件,配置jar包的坐标信息。
在这里插入图片描述
一、mian:该目录下存放的是该项目的主要代码文件,下面有三个文件夹,分别用来存放:
1.Java:该目录用来存放Java的源代码文件
2.resources:该目录主要用来存放项目的一些配置文件(比如spring的xml配置文件)。
3. webapp:该目录相当于web项目下webcontent的目录,用来存放js、jsp、web.xml等文件.
二、test:该目录用来存放项目的测试文件
 1.Java:该目录主要存放该项目的测试所用的Java源代码。
2.resources:该目录存放测试使用的资源文件。
4.maven的生命周期
基本概念
maven对构建(build)的过程进行了抽象和定义,这个过程被称为构建的生命周期(lifecycle)。生命周期(lifecycle)由多个阶段(phase)组成,每个阶段(phase)会挂接一到多个goal。goal是maven里定义任务的最小单元,相当于ant里的target。可以理解maven为一个插件的容器,每个插件绑定到某个goal执行。
构造的生命周期:
默认生命周期:校验->初始化->编译->测试->打包->集成测试->安装->部署

  1. mvn clean:清理编译的项目
  2. mvn compile:编译项目
  3. mvn test:测试项目(运行测试类)
  4. mvn package:负责将我们的项目打包
  5. mvn install:将这个项目安装到仓库中
    5.maven的坐标
    maven坐标元素包括groupId,artifactId,version,packaging,classifier。只要提供正确的坐标元素,maven就能找到对应的构件。
  6. compile:编译时依赖在所有阶段都可获得,这是默认值
  7. provided:提供的依赖范围用来编译应用程序,但无需部署。若你用到jdk或者应用服务器提供的JAR,则使用此范围,servletAPIs就属于这个依赖范围。测试时,此依赖范围也加入到classpath。
  8. runtime:运行依赖范围在编译阶段是不需要的,只有在运行时需要,比如JDBC驱动程序。
  9. test:测试范围依赖,仅在编译和运行单元测试时需要(比如Junit)。
  10. system 本地依赖,不建议使用。(nexus)

在这里插入图片描述
6.maven的依赖传递
什么是传递依赖?
所谓传递依赖就是加入依赖,会把你这个项目所需要的依赖以及所需要的依赖的依赖等加入进来。
依赖的三大基本原则:

  1. 简单传递依赖:
    A->C
    A->B-C(0.1)
    A->C(0.2)
    2.最短路径优先原则: A->C(0.2)
    A->B->C(0.1)
    A->E->C(0.2)
    3.第一声明优先原则:最终依赖C(0.1)
    注:只有编译时和运行时依赖是传递的
    7.maven仓库
    什么是仓库?
    Maven 仓库是项目中依赖的第三方库,这个库所在的位置叫做仓库。
    maven仓库的作用
    Maven 仓库能帮助我们管理构件(主要是JAR),它就是放置所有JAR文件(WAR,ZIP,POM等等)的地方。
    Maven 仓库有三种类型:
    本地仓库(local)->私服镜像(aliyun)->中央仓库(central)
    8.maven常用命令
    1.mvn clean 清空产生的项目( target里)
    2.mvn compile 编译源代码
    3.mvn install 在本地repository中安装jar(包含mvn compile,mvn package,然后上传到本地仓库)
    4.mvn deploy 上传到私服(包含mvn install,然后,上传到私服)
    5.mvn package 打包
    6.mvn test 运行测试
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值