如何解决Maven下载的依赖版本和引入的依赖版本不一致问题
作者:旭东怪
这篇文章主要介绍了如何解决Maven下载的依赖版本和引入的依赖版本不一致问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
问题描述
下载的依赖版本和引入的依赖版本不一致。


问题分析
由于当前项目先引入了
spring-data-elasticsearch 4.1.8版本的依赖同时elasticsearch依赖版本为7.9.3
然后spring-data-elasticsearch依赖的版本改为了3.1.1.RELEASE
elasticsearch版本应该会变成6.2.2的,但是elasticsearch依赖版本还是7.9.3

解决办法
(1)重新建一个项目引入spring-data-elasticsearch 3.1.1.RELEASE版本的依赖即可。
<!-- ElasticSearch6缓存数据库-->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-elasticsearch</artifactId>
<version>3.1.1.RELEASE</version>
<scope>compile</scope>
</dependency>(2)在pom.xml的properties加入一个对应${xxx}的xxxx.version标签来设置版本。

<properties>
<elasticsearch.version>6.2.2</elasticsearch.version>
</properties>(3)添加dependencyManagement标签,在dependencyManagement标签里面添加Maven依赖,这样就可以指定对应依赖的版本了。
<!--只是对版本进行管理,不会实际引入jar-->
<dependencyManagement>
<dependencies>
<!-- Elasticsearch -->
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>transport</artifactId>
<version>6.2.2</version>
</dependency>
<dependency>
<!-- required by elasticsearch -->
<groupId>org.elasticsearch.plugin</groupId>
<artifactId>transport-netty4-client</artifactId>
<version>6.2.2</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>6.2.2</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</dependencyManagement>
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
