maven简介

maven

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

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

  • maven目录结构:

maven简介
maven简介
maven简介
src:该目录主要存放的是项目的源代码文件。
target:该目录是项目编译后产生的一个目录,主要存放的是编译后的.class文件。
pom.xml:该文件是Maven项目的核心配置文件,配置jar包的坐标

maven简介

  • maven生命周期

基本概念
maven对构建(build)的过程进行了抽象和定义,这个过程被称为构建的生命周期(lifecycle)。生命周期(lifecycle)由多个阶段(phase)组成,每个阶段(phase)会挂接一到多个goal。goal是maven里定义任务的最小单元,相当于ant里的target。可以理解maven为一个插件的容器,每个插件绑定到某个goal执行。
构造的生命周期:
maven一般分为两个生命周期:
第一个是构建默认的生命周期:效验 validate-初始化 ininalize- 编译 compile-测试 test-打包 package-集成测试 intergrationTest-安装 install-部署 deploy
第二个是clean生命周期:clean(把所有的东西清理掉)

  • maven坐标
    gav:groupid 一般是都是域名反写 com.woniu.cq
    artifactid 项目名 rocket
    version 版本名 SNAPSHOT(快照版本) rc
    type

  • 依赖传递:
    什么是传递依赖?
    所谓传递依赖就是加入依赖,会把你这个项目所需要的依赖以及所需要的依赖的依赖等加入进来。
    依赖的三大基本原则:

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)
注:只有编译时和运行时依赖是传递的

  • maven仓库

在 Maven 的术语中,仓库是一个位置(place)。
Maven 仓库是项目中依赖的第三方库,这个库所在的位置叫做仓库。
在 Maven 中,任何一个依赖、插件或者项目构建的输出,都可以称之为构件。
Maven 仓库能帮助我们管理构件(主要是JAR),它就是放置所有JAR文件(WAR,ZIP,POM等等)的地方。
Maven 仓库有三种类型:

本地(local)
中央(central)
远程(remote)

  • 常用命令

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 运行测试