使用eclipse学习Maven第一天-2

五、Maven的核心概念

①约定的目录结构
②POM
③坐标
④依赖
⑤仓库
⑥生命周期/插件/目标
⑦继承
⑧聚合

六、第一个Maven工程

①创建约定的目录结构
	[1]根目录:工程名
	[2]src目录:源码
	[3]pom.xml文件:Maven工程的核心配置文件
	[4]main目录:存放主程序
	[5]test目录:存放测试程序
	[6]java目录:存放Java源文件
	[7]resources目录:存放框架或其他工具的配置文件
②为什么要遵守约定的目录结构呢?
	○Maven要负责我们这个项目的自动化构建,以编译为例,Maven要想自动进行编译,那么它必须知道Java源文件保存在哪里
	○如果我们自定义的东西想要让框架或工具知道,有两种办法
		1.以配置的方式明确告诉框架
		图5
		2.遵守框架内部已经存在的约定
			log4j.properties
			log4j.xml
	○约定>配置>编码

图5在这里插入图片描述

七、常用Maven命令

①注意:执行与构建过程相关的Maven命令,必须进入pom.xml所在的目录
	与构建过程相关:编译、测试、打包、。。。
②常用命令
	[1]mvn clean:清理
	[2]mvn compile:编译主程序
	[3]mvn test-compile:编译测试程序
	[4]mvn test:执行测试
	[5]mvn package:打包
	[6]mvn install:安装
	[7]mvn site:生成站点

八、关于联网问题

①Maven核心程序中仅仅定义了抽象的生命周期,但是具体的工作必须由特定的插件来完成,而插件本身并不包含在Maven的核心程序中。
②当我们执行的Maven命令需要用到某些插件时,Maven核心程序会首先到本地仓库中查找。
③本地仓库的默认位置:[系统中当前用户的家目录]\.m2\repository
	图6
④Maven核心程序如果在本地仓库中找不到需要的插件,那么它会自动连接外网,到中央仓库下载
⑤如果此时无法连接外网,则构建失败
⑥修改默认本地仓库的位置可以让Maven核心程序到我们事先准备好的目录下查找插件
	[1]找到Maven解压目录\conf\settings.xml
	[2]在settings.xml文件中找到localRepository标签
	[3]将<localRepository>/ath/to/local/repo<localRepository>从注释中取出
	[4]将标签体内容修改为已经准备好的Maven的仓库目录
	例:<localRepository>D:\RepMaven<localRepository>

图6在这里插入图片描述

九、POM

①含义:Project Object Model项目对象模型
	DOM Document Object Model文档对象模型
	
②pom.xml对于Maven工程是核心配置文件,与构建过程相关的一切设置都在这个文件中进行配置
	重要程度相当于web.xml对于动态Web工程

十、坐标

①数学中的坐标:
	[1]在平面上,使用X、Y两个向量可以唯一的定位平面中的任何一个点
	[2]在空间中,使用X、Y、Z三个向量可以唯一的定位空间中的任何一个点
②Maven的坐标
	使用下面三个向量在仓库中唯一定位一个Maven工程
	[1]groupid:公司或组织域名倒序+项目名
	<groupid>com.atguigu.maven</groupid>
	[2]artifactid:模块名
	<artifactid>hello</artifctid>
	[3]version:版本
	<version>1.0.0</version>
③Maven工程的坐标与仓库中路径的对应关系
	图7

图7在这里插入图片描述

十一、仓库

①仓库的分类
	[1]本地仓库:当前电脑上部署的仓库目录,为当前电脑上所有Maven工程服务
	[2]远程仓库
		图8
②仓库中保存的内容:Maven工程
	[1]Maven自身所需要的插件
	[2]第三方框架或工具的jar包
	[3]我们自己开发的Maven工程

图8在这里插入图片描述

十二、依赖

①Maven解析依赖信息时会到本地仓库中查找被依赖的jar包。
	对于我们自己开发的Maven工具,使用mvn install命令安装后就可以进入仓库。
②依赖的范围
	图9
	[1]compile范围依赖
		○对主程序是否有效:有效
		○对测试程序是否有效:有效
		○是否参与打包:参与
		○是否参与部署:参与
	[2]test范围依赖
		○对主程序是否有效:无效
		○对测试程序是否有效:有效
		○是否参与打包:不参与
		○是否参与部署:不参与
		○典型例子:junit
	[3]provided范围依赖
		○对主程序是否有效:有效
		○对测试程序是否有效:有效
		○是否参与打包:不参与
		○是否参与部署:不参与
		○典型例子:servlet-api.jar
	图10
	图11

图9在这里插入图片描述
图10在这里插入图片描述
图11在这里插入图片描述

十三、生命周期

①各个构建环节执行的顺序:不能打乱顺序,不行按照既定的正确顺序来执行
②Maven的核心程序中定义了抽象的生命周期,生命周期中各个阶段的具体任务是由插件来完成
③Maven核心程序为了更好的实现自动化构建,按照这一的特点执行生命周期中的各个阶段:不论现在要执行生命周期中的哪个阶段,都是从这个生命周期最初的位置开始执行。
④插件和目标
	[1]生命周期的各个阶段仅仅定义了要执行的任务是什么
	[2]各个阶段和插件的目标是对应的
	[3]相似的目标由特定的插件来完成
	[4]可以将目标看作“调用插件功能的命令”

十四、在Eclipse中使用Maven

①Maven插件:Eclipse内置
②Maven插件的设置
	[1]installations:指定Maven核心程序的位置,不建议使用插件自带的Maven程序,而应该使用我们自己解压的核心程序。
	[2]user settings:指定conf/settings.xml的位置,进而获取本地仓库的位置
③基本操作
	[1]创建Maven版的Java工程
	[2]创建Maven版的Web工程
	[3]执行Maven命令
发布了38 篇原创文章 · 获赞 38 · 访问量 2736

猜你喜欢

转载自blog.csdn.net/l13kddd/article/details/104485420
今日推荐