本文将介绍如何使用 Nacos 源码启动 Nacos 服务。
环境介绍
IntelliJ IDEA 2022.1.3
JDK 1.8
Nacos 2.2.1
Windows 11
下载源码到本地,然后用 IDEA 打开
git clone https://github.com/alibaba/nacos.git
下载后用 IDEA 打开就可以看到这样的结构目录
记得切换到 master 分支
找到启动类 在 console 目录下
@SpringBootApplication
@ComponentScan(basePackages ="com.alibaba.nacos", excludeFilters = {
@Filter(type = FilterType.CUSTOM, classes = {NacosTypeExcludeFilter.class}),
@Filter(type = FilterType.CUSTOM, classes = {TypeExcludeFilter.class}),
@Filter(type = FilterType.CUSTOM, classes = {AutoConfigurationExcludeFilter.class})})
@ServletComponentScan
@EnableScheduling
public classNacos {
public static voidmain(String[] args) {
SpringApplication.run(Nacos.class, args);
}
}
直接运行会提示下面的内容 java: 程序包com.alibaba.nacos.consistency.entity
不存在
这是因为这个是由 protobuf 编译的时候生成的,现在没有生成所以还得生成一下,不然是运行不起来的。
这时候执行 clean 和 compile 即可
如果执行后 IDEA 还是爆红点击一下刷新图标即可。
再次运行会报错 the length of secret key must great than or equal 32 bytes; And the secret key must be encoded by base64
可以去 console 目录下的 application.properties 去填写 nacos.core.auth.plugin.nacos.token.secret.key 的值
再次运行又会报错
....
Caused by: java.lang.IllegalArgumentException: db.num is null
at com.alibaba.nacos.common.utils.Preconditions.checkArgument(Preconditions.java:42)
at com.alibaba.nacos.config.server.service.datasource.ExternalDataSourceProperties.build(ExternalDataSourceProperties.java:75)
at com.alibaba.nacos.config.server.service.datasource.ExternalDataSourceServiceImpl.reload(ExternalDataSourceServiceImpl.java:134)
... 127 common frames omitted
这时候在打开启动旁边的下来选项,找到 Edit Configurations
增加下面的参数 ,配置为单体运行。
-Dnacos.standalone=true
即可运行成功。
评论区