昨天在整合SpringCloud项目时,将其他成员的项目导入过来后运行,报了错误:java.lang.NoSuchMethodError,于是在网上百度了下,
参考了简书的一篇文章https://www.jianshu.com/p/794fe4761b1f,错误原因应该是版本之间的不兼容问题。
根据该文章,我查看了此项目如下两处的版本:
(1)
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.20.RELEASE</version>
<relativePath/>
</parent>
(2)
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
但我在网上查了下Dalston.SR1需要的springboot版本是1.5.x,组件并不冲突,我还是换成了springboot2.0.x版本和Finchley.M7,然后添加仓库地址:
<repositories>
<repository>
<id>spring-milestones</id>
<name>SpringMilestones</name>
<url>https://repo.spring.io/libs-milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
到此可以解决该问题了。
但是!项目又出现其他问题,配置文件找不到了!!很纳闷==
再结合上面2个组件明明不冲突,但是报错的情况,我怀疑是下载jar包下载的不正确(中间出现过jar包missing的情况,以来的jar包有很多叉叉),到本地仓库看了下,很多名称不对,本应该是XXX.jar,但好多都是XXX-source.jar,对此,Maven->update project也没用,后来实在没辙,在update project的时候,勾选上Force Update of Snapshots/Releases(做此操作之前,把我的pom文件恢复到了最初始的状态,即1.5.x的springboot版本和Dalston.SR1版本),于是大概花了半个小时重新下载jar包,此时项目左上角没有红叉叉了,重新运行没有问题!