Maven学习总结

来源:互联网 发布:头影测量软件 编辑:程序博客网 时间:2024/04/27 08:37

Maven的两大特点:

依赖管理:对Jar包的管理过程,即对Jar包的统一管理

项目构建:项目进行编码完毕后,对项目进行编译、测试、打包、部署等操作都可以通过命令来实现

Maven的依赖管理


说明:Maven项目可以通过pom文件中的配置坐标,来找到项目需要的jar包,无需再将Jar包拷贝到lib文件中

坐标的规范:公司名+项目名+版本号

                    例如:Struts2+core+2.3.24.jar

                              Apache(公司名称)+struts2(项目名)+2.3.24(版本号)

传递依赖冲突

传递依赖:A依赖B,B依赖C(1.1版本),即B是A的直接依赖,C是A的传递依赖

传递依赖冲突:此时再导入D,D依赖C(1.2版本),则此时C版本存在1.1和1.2两个版本,A,D到底要依赖哪个版本,此时存在冲突

传递依赖冲突的解决

Maven自己调节的原则

同一级别的依赖,满足第一声明者优先的原则

即:在POM文件中谁先定义的,就用谁

不同级别的,符合最短路径原则

即:直接依赖的级别高于传递依赖的级别

手动调节方法----排除依赖与版本锁定

排除依赖Exclude排除依赖



版本锁定DependencyManagement



注:dependencyManagement主要对依赖的管理,并不实际加载依赖,实际加载依赖,是下边的dependencies

即:使用了dependencyManagement来管理的版本,是哪个版本,下边就实际依赖哪个版本

Maven仓库类型



注意:中央仓库中没有Oracle数据库驱动的包

配置本地仓库



2.解压到一个文件中



Maven项目标准目录结构



注意:target目录不是标准目录文件,存放的为src源文件编译后的文件



Maven常用命令

Clean:清理

将项目根目录下的target目录清理掉

Compile:编译

将项目中的.java文件编译成.class文件

Test:单元测试

单元测试类名要求:XxxxTest.java

项目根目录下,src/test/java目录下的单元测试类都会执行

Package:打包

Web project-----war包

Java project------jar包

Install:安装

解决本地多个项目用一个jar包的问题,将jar包放到本地仓库

项目的拆分

主要思路:将dao、service层的代码以及配置文件全体提取出来到一个表现上独立的工程中,然后将独立的工程install到本地仓库,供其他项目使用,拆分后将项目进行聚合,至此提出父工程的概念

创建父工程




创建好的父工程目录结构:



创建好的父工程只有pom文件,所以不需要编码,主要作用:

1.项目需要的依赖信息,在父工程中定义,子模块继承过程

2.将各模块聚合到一起

将父工程发布到本地仓库

如果在以后发布service、dao时项目报错,可检查是否将父工程发布到了本地仓库。

创建子工程





创建Maven项目




创建web项目产生的问题及解决方式(注意使用update project)




查找依赖



依赖范围(注意:provided)


打包出现servlet-api冲突问题的解决


改善方法



传递依赖的范围



运行调试Maven项目


直接运行:


调试运行(注意要resource关联源码,不然不能运行):

右键---》Debug As---》Maven build…()


概念模型