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>
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。