SpringCloud中导入Eureka的坑
之前在写简单的Eureka的时候不知道怎么报了一个错,最后一行的出错信息是这样的:
Caused by: java.lang.ClassNotFoundException: org.springframework.cloud.context.environment.EnvironmentChangeEvent
刚开始百度说是springboot和springcloud版本不匹配,也有说是springcloud和eureka的版本不匹配,我用的是springboot(2.0.1)+ springcloud(Finchley.SR3),后来按照说明试了好多版本都不好使,无意中看了自己的pom文件,发现了问题的所在:
parent的pom文件是这样的:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.SR3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
eureka中的pom是这样的:
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
使用了netflix的eureka貌似也没毛病,但其实我忘记此时并没有导入一依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter</artifactId>
</dependency>
相当于你springcloud的启动器没有导,所以说缺少环境,其实maven中给我们提供了这两种合二为一的方式,就是:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>