1.下载源码:
git clone git@github.com:alibaba/nacos.git
2.导入源码到idea中
3.打包编译:
mvn -Prelease-nacos clean install -U -Dmaven.test.skip=true
4.开始分析源码
首先找到distribution这个mudule,该module中的start.sh启动文件,找到这一行:
JAVA_OPT="${JAVA_OPT} -Dloader.path=${BASE_DIR}/plugins/health -jar ${BASE_DIR}/target/${SERVER}.jar"
根据上面的定义:
export SERVER="nacos-server"
可以看出,nacos启动的时候是启动的nacos-servce.jar这个jar包。该包在步骤3的编译打包后位于distribution这个module的target下,解压该包,查看MANIFEST.MF文件,看到启动类为Nacos类:
Start-Class: com.alibaba.nacos.Nacos
该类位于console这个module下,入口找到。
5.console这个springboot项目,console本身没有什么核心功能,主要是一些权限相关的内容,console还引入了naming和config项目。
<dependency> <groupId>${project.groupId}</groupId> <artifactId>nacos-config<