maven依赖的version声明控制
在写新的springcloud项目时
启动报错Correct the classpath of your application so that it contains a single, compatible version of ........
大意是确保jar包的版本兼容且唯一.
为什么会出现这种情况呢?因为父模块声明了某个jar包的版本,子模块导入时不应再声明version,不然会冲突.当然,一般人也不会傻傻地再声明版本,复杂的情况是:父模块声明的jar包内部包含的某个jar包被子模块导入,但子模块不知道父模块包含此jar包,才会再次声明version.
下面以springcloud的注册中心模块举例
父模块le,注册中心模块le-registry,解释全在图上:

maven设置依赖version属性
在pom.xml文件中:
1、加入profiles
- ?<profiles>
- ? <profile>
- ? <activation>
- ? <property>
- ? <name>spring.version</name>
- ? <value>4.0.0.RELEASE</value>
- ? </property>
- ? </activation>
- ? </profile>
- ?</profiles>
2、version处用${name}替代
- <dependency>
- ?<groupId>org.springframework</groupId>
- ?<artifactId>spring-context</artifactId>
- ?<version>${spring.version}</version>
- </dependency>
以上为个人经验,希望能给大家一个参考,也希望大家多多支持w3xue。