今天在建SpringCloud项目时遇到了一个问题,由于是建的空项目,只粘取了以往项目中dependencies中的内容导致jar包未下载下来,经过一番周折终于解决了,原因还是因为自己对pom文件中的标签理解的不到位。
首先献上一张哪都爆红的图片
爆红的原因:是因为在<dependency>中引用的jar都没有声明版本号,并且也没有版本限定(即没有写<dependencyManagement>和<properties>),在<dependency>中引用的jar没有声明版本号时,它会找<dependencyManagement>里找对应groupId和artifactId的jar,如果有就继承他,如果没有就会报错。
在这里我也总结了一下pom文件中重要标签的作用:
1.<module>:本项目的模块,也就是子项目
2.<parent>:本项目的父项目
3.<properties>:声明版本号,后面dependency中用到版本号时可以用${变量名}的形式代替。
好处:当版本号发生改变时,只有更新properties标签中的变量就行了,不用更新所有依赖的版本号。
4.<dependencies>:自动引入声明在dependencies里的所有依赖,并默认被所有的子项目继承。如果项目中不写依赖项,则会从父项目继承(属性全部继承)声明在父项目dependencies里的依赖项。
5.<dependencyManagement>:版本限定防止冲突,其实就是多版本号进行管理。在父工程pom文件中声明依赖,但不引入;在子工程中用到声明的依赖时,可以不加依赖的版本号,这样可以统一管理工程中用到的依赖版本。