一、Maven简介
Maven是项目构建和项目管理的工具。它提供了帮助管理/构建/报告文档/依赖/发布等等的方法,可以将项目过程规范化,自动化,高效化以及强大的可扩展性,maven自身及其插件获得代码检查报告,单元测试覆盖率,实现持续集成等等。
二、pom文件
pom是可以继承的。
pom中packing,如果没有写,默认jar打包。
GAV(groupId, artifactId, version)
项目的打包类型:pom、jar、war。
使用maven进行模块划分管理,一般都会有一个父级项目,pom文件除了GAV(groupId, artifactId, version)是必须要配置的,另一个重要的属性就是packaging打包类型,所有的父级项目的packaging都为pom。作为父级项目,还有一个重要的属性,那就是modules,通过modules标签将项目的所有子项目引用进来,在build父级项目时,会根据子模块的相互依赖关系整理一个build顺序,然后依次build。
对于子项目自己的GAV配置,GV如果不配置,则会从父级项目的配置继承过来。此外子类项目的packaging值只能是war或者jar。但是如果子模块再做为父模块,继续细分子模块,packaging为pom。
如果是需要部署的项目,则需要打包成war类型,如果只是内部调用或者是作服务使用,则推荐打包成jar类型。
dependency为什么会有type为pom,默认的值是什么?
dependency中type默认为jar即引入一个特定的jar包。那么为什么还会有type为pom呢?当我们需要引入很多jar包的时候会导致pom.xml过大,我们可以想到的一种解决方案是定义一个父项目,但是父项目只有一个,也有可能导致父项目的pom.xml文件过大。这个时候我们引进来一个type为pom,意味着我们可以将所有的jar包打包成一个pom,然后我们依赖了pom,即可以下载下来所有依赖的jar包
三、Maven的相关特性
A.jar引用了B.jar,B.jar引用了X.jar.
C.jar引用了X.jar.
(这里X.jar的版本也一样)如果版本不同导致的冲突,maven是不处理的,需要通过排除不要的依赖来手动解决冲突。
四、Maven本地仓库、中心仓库、远程仓库
五、项目依赖的jar报错
查看项目依赖,如果发现红框里的内容飘红了,则说明项目当前依赖的 jar 包报错了。
解决方法:
1.可以通过以下的几个步骤来解决: 比对项目的目录结构和 pom 文件的内容是否正确
2.修改了 pom 文件,但是还没有生效造成的,此时可以对 pom.xml 文件执行 reimport 操作
3.如果执行了 reimport 操作还是没有生效,则在 pom.xml 文件所在目录执行 maven 命令:mvn compile