maven

关于maven的问题

1. 什么是maven

是apache下的一个开源项目,并且只是用来管理java项目的。Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。

2.什么是依赖管理

依赖管理就是将项目所依赖的jar包按照一定规则进行规范化管理。

3. 什么是项目构建

项目构建是一个项目从编写源代码到编译,测试,运行,打包,部署,运行的过程。

3.1 传统项目构建过程
(1) 在eclipse中新建一个WEB工程。
(2) 进行编码及编写配置文件
(3) 对源代码进行编译运行,生成class文件
(4) 打成war包,部署至tomcat

4.使用Maven好处

一步构建:一个命令即可启动。
依赖管理:对jar包统一管理,避免冲突等问题
跨平台:可在windows及linux下运行
有利于提高大型项目的团队开发效率
越来越多的公司使用maven

5.maven的常用命令

			 Mvn clean : 清理
			 Mvn compile:编译
			 Mvn package:打包
			 mvn test : 测试,⾃动运⾏所有的测试⽤例
			 mvn install : 安装,将项⽬打的包安装到本地仓库,其他项⽬就可以依赖了
			 Mvn jetty:run : 运⾏jetty插件

6.Maven的坐标和依赖

        所有的maven项⽬都有⼀个唯⼀的坐标作为标识,肯定是不能重复的,其他项⽬通过坐标进⾏依赖的   导⼊
  1. maven的坐标组成部分
    groupId: 组织机构id,org.aptech.hdax, org.springframework
    artifactId: ⼦项⽬编号,springmvc, spring-test, spring-core
    version: 版本号,可以⼀直迭代,平时项⽬开发⽤的是快照版本 0.0.1-SNAPSHOT
    Package: jar war pom
  2. 项⽬依赖的核⼼概念:
    框架整合最害怕jar包冲突,之前不使⽤maven,经常出现这个⽂件。
    依赖范围 scope标签进⾏配置
    Compile: 默认值,项⽬打包的时候会把该依赖包打进去
    Test : 测试依赖,只是在运⾏测试⽤例的时候会⽤到,打包是不打进去的
    Provided: 提供依赖,类似于test
    传递依赖
    a -> b, b->c ,如果在a中导⼊到b的依赖,c会⾃动过来
    依赖调解
    如果不同的包传递依赖了⼀个相同的jar,但是版本不⼀致
    原则:
    最短路径
    第⼀声明优先原则
    排除依赖
    归类依赖: ⽅便后期的依赖版本升级、降级

7. Maven的⽣命周期

可能会想起: servlet的⽣命周期:实例化、初始化、服务、销毁
mvn clean package
三套独⽴的⽣命周期,每个⽣命周期对应不同的阶段phase
ü Clean Lifecycle 在进⾏真正的构建之前进⾏⼀些清理⼯作。
ü Default Lifecycle 构建的核⼼部分,编译,测试,打包,部署等等。
ü Site Lifecycle ⽣成项⽬报告,站点,发布站点。
每套⽣命周期都由⼀组阶段(Phase)组成,我们平时在命令⾏输⼊的命令总会对应于⼀个特定的阶段

8. Maven的仓库

所有的项⽬都有坐标,唯⼀的标识,这个标识同样也是maven仓库的存储路径。
对于Maven来说,仓库只分为两类:本地仓库 和 远程仓库。
项⽬依赖,先查找本地仓库,如果没有,查找远程仓库,下载到本地仓库,然后项⽬依赖使⽤。

  1. 本地仓库:
    默认保存到⽤户⽬录的.m2中
    也可以通过修改配置⽂件改到其他地⽅(本地仓库的配置在settings.xml文件中修改。)
  2. 远程仓库
    中央仓库:maven中央仓库、阿⾥云镜像库(默认只会从这⾥下载)
    私服:局域⽹使⽤,安全、速度快、可以上传⾃⼰的私有东⻄
    第三⽅的公共库:Jboss、java.net(⽹络相关的类库)
  3. 如何配置私服和第三⽅的公共库
    全局配置:直接修改maven的配置⽂件
    局部配置:修改项⽬的配置⽂件即可

.9聚合和继承

  1. 聚合:⼀键式构建所有项⽬
  2. 继承:配置⽂件重复的问题:项⽬依赖、插件

10. maven中Pom.xml解析

 setting.xml主要用于配置maven的运行环境等一系列通用的属性,是全局级别的配置文件;而pom.xml主要描述了项目的maven坐标,依赖关系,开发者需要遵循的规则,缺陷管理系统,组织和licenses,以及其他所有的项目相关因素,是项目级别的配置文件。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值