之前在eclipse中单儿构建第一个Ribbon时,只需要加入以下依赖即可:
<dependencies>
<dependency>
<groupId>com.netflix.ribbon</groupId>
<artifactId>ribbon</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>com.netflix.ribbon</groupId>
<artifactId>ribbon-httpclient</artifactId>
<version>2.2.2</version>
</dependency>
</dependencies>
但是以上的依赖,单独在命令行中使用Maven命令构建,或者在IDEA中构建,则会抛出异常,信息如下:
[ERROR] 符号: 变量 ConfigurationManager
[ERROR] 位置: 类 org.crazyit.cloud.TestPingUrlConfig
[ERROR] /D:/s_book/Spring Cloud/codes/04/4.2/first-ribbon-client/src/main/java/org/crazyit/cloud/TestPingUrlConfig.java:[19,17] 找不到符号
[ERROR] 符号: 变量 ConfigurationManager
[ERROR] 位置: 类 org.crazyit.cloud.TestPingUrlConfig
[ERROR] /D:/s_book/Spring Cloud/codes/04/4.2/first-ribbon-client/src/main/java/org/crazyit/cloud/TestPingUrlConfig.java:[23,17] 找不到符号
[ERROR] 符号: 变量 ConfigurationManager
[ERROR] 位置: 类 org.crazyit.cloud.TestPingUrlConfig
[ERROR] /D:/s_book/Spring Cloud/codes/04/4.2/first-ribbon-client/src/main/java/org/crazyit/cloud/TestRestClient.java:[14,17] 找不到符号
[ERROR] 符号: 变量 ConfigurationManager
[ERROR] 位置: 类 org.crazyit.cloud.TestRestClient
[ERROR] /D:/s_book/Spring Cloud/codes/04/4.2/first-ribbon-client/src/main/java/org/crazyit/cloud/TestRestClient.java:[25,49] 无法访问com.google.common.reflect.
ypeToken
[ERROR] 找不到com.google.common.reflect.TypeToken的类文件
[ERROR] /D:/s_book/Spring Cloud/codes/04/4.2/first-ribbon-client/src/main/java/org/crazyit/cloud/MyPingTest.java:[15,17] 找不到符号
[ERROR] 符号: 变量 ConfigurationManager
解决方法,使用eclispe或者修改pom.xml,修改后的pom.xml内容如下:
<dependencies>
<dependency>
<groupId>com.netflix.ribbon</groupId>
<artifactId>ribbon-core</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>com.netflix.ribbon</groupId>
<artifactId>ribbon-loadbalancer</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>com.netflix.archaius</groupId>
<artifactId>archaius-core</artifactId>
<version>0.7.5</version>
</dependency>
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<version>1.9</version>
</dependency>
<dependency>
<groupId>com.netflix.ribbon</groupId>
<artifactId>ribbon-httpclient</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>18.0</version>
</dependency>
</dependencies>
暂时不知道原因,估计是eclipse的Maven插件有问题,自动引入许多依赖。