soul源码分析(0)阅读源码的准备与预备知识
目标
- fork代码
- 本地编译成功
- 启动网关
- soul基础
fork代码
github fork到自己的repo,然后在本地:
git clone https://github.com/evasnowind/soul
cd soul
git branch --set-upstream-to=origin/master
由于目前master分支在不断迭代、开发中,个人建议可以先拉取一个稳定的版本,方便阅读。
git fetch origin 2.2.1:2.2.1
git checkout 2.2.1
我个人的话目前使用的master最新代码(截止到2021.1.15),因此本文以及后续文章主要针对目前master分支代码。
本地编译
可以使用如下命令,跳过单元测试、加快编译:
mvn clean install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Drat.skip=true -Dcheckstyle.skip=true
编译成功如果是用IDEA,注意检查IDEA所用的JDK版本,需要检查Project Structure
中的Project
和Modules
:
如果高于JDK 8,可能会报Caused by: java.lang.NoClassDefFoundError: org/w3c/dom/ls/DocumentLS
异常,此时将上面两个截图中的JDK都改成JDK 8即可。
启动网关
soul网关需要启动2个模块:soul-admin, soul-boostrap,前者管理元数据,后者是实际的网关模块。
- 先启动soul-admin
- 进入soul-admin模块,修改启动配置:
- 主要需要修改application.yml中数据库配置,只要改为你的数据库地址、账号、密码即可。注意不用自己执行soul的数据库脚本,在启动时soul-admin将自己运行该脚本,执行创建数据库、创建表等操作。
- 运行SoulAdminBootstrap即可。
- 进入soul-admin模块,修改启动配置:
- 然后启动soul-boostrap
- 进入soul-boostrap模块
- 运行SoulBootstrapApplication即可。
如果上述启动时遇到端口冲突,注意两个模块需要同步修改、保证两边一致。
soul-admin
运行成功日志效果如下: