Maven核心概念(二)
Maven坐标
??? 主要用于在依赖关系中确定某个唯一的包。
??? 坐标由四种元素组成:
??? 1.groupId:定义当前Maven项目所隶属的项目。
??? 2.artifactId:定义项目的一个模块。
??? 3.version:版本号。
??? 4.packging:打包方式,默认为jar包。
依赖管理
在pom.xml文件中,声明依赖关系的方式如下:
?
???? 依赖范围 scope 用来控制依赖与编译、测试、运行的ClassPath的关系,主要的几种依赖关系如下:
??? 1.compile:对于编译、测试、运行三种ClassPath都有效,如果 scope 选项不设置,就默认是这个范围,如:log4j。
??? 2.test:只对测试ClassPath有效,如:Junit
??? 3.provided:已提供依赖范围,对编译、测试的ClassPath有效,但对于运行无效。因为依赖已有容器提供,如Servlet-API。
??? 4.runtime:运行时提供,如 jdbc驱动。
仓库管理
??? Maven仓库:用来统一存储所有Maven共享构建的位置就是仓库,如:~\.m2\repository\
??? 仓库布局:根据Maven坐标定义每个组件在仓库中的唯一存储路径,groupId /artifactId /version /artifactId-version.packing
??? 仓库分类:
???????? 1.本地仓库。
???????? 2.远程仓库。
???????????????????? 远程仓库又包括:
???????????????????????? a.中央仓库:Maven默认的远程仓库。http://repo1.maven.org/maven2
???????????????????????? b.私服:假设在局域网内的仓库。
???????????????????????? c.j镜像:用来替代远程仓库,一般速度比中央仓库快。
生命周期
??? Maven声明周期用来所有的构建过程进行抽象和统一。这个构建过程包括项目清理、初始化、编译、打包、测试、部署等构建步骤。
??? Maven有三套相互独立的生命周期:
??????? Clean Lifecycle 在进行真正的构建之前进行一些清理工作。
??????? Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。
??????? Site Lifecycle 生成项目报告,站点,发布站点。
?