-
仓库
-
仓库的类型
-
本地(local)
-
Maven 的本地仓库,在安装 Maven 后并不会创建,它是在第一次执行 maven 命令的时候才被创建
-
-
中央(central)
-
Maven 中央仓库是由 Maven 社区提供的仓库,其中包含了大量常用的库。
-
-
远程(remote)
-
-
依赖搜索顺序
-
-
生命周期
-
概念:
-
Maven的生命周期是对所有的构建过程进行抽象和统一
-
生命周期只是定义了一系列的阶段,并确定这些阶段的执行顺序
-
-
Maven有三套相互独立的生命周期
-
Clean
-
目的是清理项目
-
-
Default(build)
-
目的是构建项目
-
-
site
-
目的是建立项目站点
-
-
-
-
maven的继承与聚合
-
继承就是避免重复,maven的继承也是这样,它还有一个好处就是让项目更加安全。把公共的配置信息写到父模块中,子模块只要继承了该父模块,也会继承父模块的配置信息
-
可继承的pom元素
-
groupId :项目组 ID ,项目坐标的核心元素;
-
version :项目版本,项目坐标的核心元素;
-
properties :自定义的 Maven 属性;
-
dependencies :项目的依赖配置;
-
dependencyManagement :项目的依赖管理配置;
-
-
IDEA实现继承
-
首先创建父类项目,然后在父类项目中,创建子类模块,如下图所示
-
当我们创建完成后,会发先父类的pom中有子类模块的名字
-
对应的,子类模块中也会有父类的坐标,且子类的个人坐标只有项目名称,如下所示
-
-
-
继承的依赖管理
-
父类直接引用依赖,如果在父类的dependencies内直接引用依赖,则子类都会继承该依赖
-
父类通过dependencyManagement管理依赖,子类不会默认继承该依赖,但是当子类使用该依赖时无需考虑版本信息,直接继承父类dependencyManagement中设置的版本号(Version)
-
-
聚合管理
-
以上面得父子项目为例,当我们对parent进行mvn install时,会对core,manage和portal项目均进行install操作
-
-
properties属性的使用
-
通过 properties元素用户可以定义一个或多个 maven 属性,然后在 maven 的其他地方使用 ${属性名称} 的方式引用该属性,这种做法的意义在于消除重复和统一管理。(例子如下)
-
-
-
私服架构
公司在自己的局域网内搭建自己的远程仓库服务器,称为私服, 私服服务器即是公司内部的 maven 远程仓库, 每个员工的电脑上安装 maven 软件并且连接私服服务器,员工将自己开发的项目打成 jar 并发布到私服服务器,其它项目组从私服服务器下载所依赖的构件(jar)。
私服还充当一个代理服务器,当私服上没有 jar 包会从互联网中央仓库自动下载。
-
Nexus介绍
-
Nexus 是 Maven 仓库管理器, 通过 nexus 可以搭建 maven 仓库,同时 nexus 还提供强大的仓库管理功能,构件搜索功能等。
-
-
Nexus仓库类型
-
hosted,宿主仓库, 部署自己的 jar 到这个类型的仓库,包括 releases 和 snapshot 两部分, Releases 公司内部发布版本仓库、 Snapshots 公司内部测试版本仓库
-
proxy,代理仓库, 用于代理远程的公共仓库,如 maven 中央仓库,用户连接私服,私服自动去中央仓库下载 jar 包或者插件。
-
group,仓库组,用来合并多个 hosted/proxy 仓库,通常我们配置自己的 maven 连接仓库组。Group仓库组也是可以自己进行定制的。
-
virtual(虚拟):兼容 Maven1 版本的 jar 或者插件
-
-