安装 gradle-2.10

首先本地要安装 gradle-2.10。
下载地址:
​​​https://gradle.org/releases/​

配置环境变量:

#Gradle 配置
GRADLE_HOME=/Users/dongguabai/develope/gradle/gradle-2.10
export GRADLE_HOME
export PATH=$PATH:$GRADLE_HOME/bin

下载源码并导入 IDEA

首先将相关源码 clone 下来:

➜  gitee git clone https://github.com/Netflix/eureka.git

impor 进入 IDEA,选择 gradle。

会发现开始加载相关配置与依赖:

本地调试 Eureka 源码_ide

我这里一直出现一个异常:找不到'org.gradle.api.provider.ProviderFactory'.

这个类应该是 gradle 6.8 以上才有的,我这边直接切换 Eureka 的版本分支就可以了。

eureka git:(v1.7.x)

这时候已经编译好了,修改 com.netflix.eureka.resources.EurekaClientServerRestIntegrationTest#startServer 方法,避免要通过 war 包启动:

private static void startServer() throws Exception {
/*File warFile = findWar();

server = new Server(8080);

WebAppContext webapp = new WebAppContext();
webapp.setContextPath("/");
webapp.setWar(warFile.getAbsolutePath());
server.setHandler(webapp);

server.start();

eurekaServiceUrl = "http://localhost:8080/v2";*/server = new Server(8080);

WebAppContext webAppCtx = new WebAppContext(new File("./eureka-server/src/main/webapp").getAbsolutePath(), "/");
webAppCtx.setDescriptor(new File("./eureka-server/src/main/webapp/WEB-INF/web.xml").getAbsolutePath());
webAppCtx.setResourceBase(new File("./eureka-server/src/main/resources").getAbsolutePath());
webAppCtx.setClassLoader(Thread.currentThread().getContextClassLoader());
server.setHandler(webAppCtx);
server.start();

eurekaServiceUrl = "http://localhost:8080/v2";

}

接下来可以随便在 EurekaClientServerRestIntegrationTest 中找一个测试方法执行即可。