-
groupID artifactId version构成坐标
构件:任何一个依赖、插件、项目构建的输出,都可以称为构建
仓库
本地仓库
远程仓库:默认中央仓库
镜像仓库:它提供了和中央仓库一样的功能,maven的中央仓库的服务器是国外的,所以使用镜像仓库访问资源更稳定一些。
修改镜像仓库的位置:apache-maven——>conf——>setting.xml中mirror,配置了镜像仓库,就不会再访问中央仓库。
更改仓库位置:maven从远程仓库下载构件,默认存放在当前用户目录中,可以更改位置。,一般不会把仓库放在C盘目录中,如果遇到一些问题这个数据可能就没了。仓库路径修改settings.xml中的localRepository标签。将修改后的settings.xml复制一份到更改后的位置,然后执行。可用mvn clean compile将原本的删除在新的地方重建
查看全部 -
创建maven目录的两种方式:
查看全部 -
maven常用的构建命令:
mvn -v 查看maven版本
compile 编译
test 测试
package 打包
clean 删除编译后产生的target
install 安装jar包到本地仓库中
查看全部 -
maven目录结构:
src
-main
-java
-package
-test
-java
-package
-resources
查看全部 -
排除依赖 exclusions
查看全部 -
被继承的要先打包package,再install到本地仓库,继承的工程才能去编译
A项目--->引用B项目---->引用C项目
A项目的maven依赖包中会有B和C
B项目的maven依赖包中会有C
查看全部 -
完整的项目构建过程包括:清理——>编译——>测试——>打包——>集成测试——>验证——>部署,等步骤。
maven将这个过程进行了抽象,实际上maven和插件是密不可分的,maven抽象出了项目构建的生命周期,而插件是对maven抽象的具体实现,比如我们对项目进行编译,那么compiler就对应了maven compiler plugin。
maven中定义三套独立的生命周期:分别包括clean、default、site,这三套生命周期是相互独立的,每个生命周期又包含一些阶段,各个生命周期的阶段是有顺序的,且后面的阶段依赖前面的阶段,执行每个阶段时,其前面的阶段会依次顺序执行,但不会触发另外两套生命周期的任何阶段,就好像之前使用到的package命令,该命令用于打包,虽然在运行package命令之前,并没有compile和test,但当我们运行package之后,它的compile和test是依次执行的,也就是运行package这个阶段时,compile和test会自动的运行。
1、clean:目的是来清理项目,它又分为三个阶段。
pre-clean执行清理前的工作
clean清理上一次构建生成的所有文件
post-clean执行清理后的文件
2、default:目的是来构建项目(生命周期中最核心,包含了构建项目时所要执行的步骤),阶段比较多,常用阶段有以下几种。
例如:compile test package install,默认都是default这个生命周期中的。
3、site:生成项目的站点,会根据pom种的信息,自动生成一个站,它又分为以下几个阶段。
pre-site:在生成项目站点前要完成的工作。
site:生成项目的站点文档。
post-site:在生成项目站点后要完成的工作。
site-deploy:发布生成的站点到服务器上。
查看全部 -
maven依赖冲突:如果有A(南哥)和B(B哥)依赖了一个不同版本相同的构件(commons-io),那么对于依赖于AB的C(山鸡哥)来说,它究竟依赖于A和B的哪一个版本的构件,这里有两条原则。
原则1:短路优先:优先解析路径短的版本,加入有以下的依赖,假如有以下的依赖,A依赖B,B依赖C,C依赖X,X可以理解为一个jar。A依赖D,D依赖X。会优先解析路径短的这个版本。
案例:B哥依赖commons-io的2.4版本,南哥依赖的是commons-io的2.0版本
描述:这里使用到了一个新的依赖,https://mvnrepository.com/输入commons-io,点击第一个,会出现很多的版本,使用2.4和2.0
点击了这个版本之后,会出现该构件的坐标,为B哥复制的依赖时Commons-io的2.4版本
原则2:先声明先优先:如果路径长度相同,则谁先声明,先解析谁
案例2:
南哥不在依赖B哥,所以删除南哥pom中依赖B哥的标签,山鸡哥同时依赖南哥和B哥,也就是说山鸡依赖的路径长度相同,但是依赖B哥的标签在依赖南哥标签的前面,这样就可以看到山鸡依赖的是B哥所依赖的jar包2.4。
查看全部 -
eclipse中仓库定义
查看全部 -
clean.comple.test.pavkage.install
查看全部 -
maven三大生命周期clen default site
查看全部 -
项目构建过程
查看全部 -
常用到的就是排除传递依赖,使用<exclusions></exclusions>标签。
查看全部 -
maven——项目管理利器查看全部
-
maven依赖冲突:
1. 短路优先
A->B->C->X(jar)
A->D->X(jar) (优先用这个X)
2. 先声明先优先
如果路径长度相同,则谁先声明,先解析谁
查看全部
举报