一.pom.xml文件中,jar的版本判断的两种途径
1:如果dependencies里的dependency自己没有声明version元素,那么maven就
会倒dependencyManagement里面去找有没有对该artifactId和groupId进行过版本声明,如果有,就继承它,如果
没有就会报错,告诉你必须为dependency声明一个version
2:如果dependencies中的dependency声明了version,那么无论dependencyManagement中有无对该jar的version声明,都以dependency里的version为准
二.<scope> 范围 表示在什么范围内使用该依赖
import
表示引入一个pom文件一般用来实现多继承
compile
默认的scope,表示 dependency 都可以在生命周期中使用。而且,这些dependencies 会传递到依赖的项目中。适用于所有阶段,会随着项目一起发布
provided
跟compile相似,但是表明了dependency 由JDK或者容器提供,例如Servlet AP和一些Java EE APIs。这个scope 只能作用在编译和测试时,同时没有传递性。????????
runtime
表示dependency不作用在编译时,但会作用在运行和测试时,如JDBC驱动,适用运行和测试阶段。
test
表示dependency作用在测试时,不作用在运行时。 只在测试时使用,用于编译和运行测试代码。不会随项目发布。
system
跟provided 相似,但是在系统中要以外部JAR包的形式提供,maven不会在repository查找它。
三,<plugins>元素的作用是: 给出构建过程中用到的插件.
<groupId> : 项目或者组织的唯一标识
<artifactId> 项目的通用名称
<artifactId> 项目的通用名称
<version> 项目的版本
<extensions> 是否加载该插件的扩展,默认为false
<inherited> 该插件的<configuration>中的配置是否可以被继承,默认为true
<configuration> 该插件所需要的特色配置,在父子项目项目之间可以覆盖或被合并
<dependencies> 该插件所特有的依赖类库
<executions> 该插件的某个goal(一个插件可能有多个goal)的执行方式.一个<executions>有如下设置
<id> 唯一标识
<goals> 要执行的插件的goal.这个是可以有多个的
<phase> 插件的goal要嵌入到Maven的phase中执行
<inherited> 该execution是否可被子项目继承
<configuration> 该execution的其他配置参数
四:
继承失败 忘了添加<scope>import</scope>
resolved method abstract getOrder()I of interface org.springframework.core.Ordered.
springcloud版本冲突导致