nacos源码启动
Nacos 2.3.0-SNAPSHOT 最新版本源码启动
最近研究 nacos源码启动, 把遇到的问题总结一下, 希望可以帮助到大家
1. nacos官方源码登陆
-
从github上下载最新源码, github地址为 https://github.com/alibaba/nacos.git
-
用 idea打开nacos项目
-
找到
/confg/src/main/resource/META-INF/nacos-db.sql
文件, 初始化nacos的数据库 -
打开最外层的
pom.xml
文件, 将 305-325行的校验plugin注释掉(nacos部分源码不符合import规范, 编译无法通过, 需要手动修改) -
点开idea 右侧的maven 页签, 先点击 Toggle
'Skip Tests' Mode
, 跳过大宝测试, 在点击install安装项目所需jar包install完成后如下图所示
-
打开
/console/src/main/resource/application.properties
项目配置文件, 修改为自己的数据库信息 -
在idea中添加nacos的启动配置, 配置如下
启动参数
-Dnacos.standalone=true
指定了nacos单体启动 -
启动nacos(如果出现缺少文件的情况, 在点击install安装项目即可), 出现下图即为启动成功.
-
打开上图console: 后面的网页, 即可打开nacos的管理页面, 这样nacos就启动成功了.
2. 简洁版源码启动
在我使用了jeecg框架后, 发现nacos启动只需要把需要的jar包引入即可;
而阿里官方并没有维护这些依赖包的远程仓库, 因此我们就需要下载源码, install项目, nacos需要的jar包打包到本地的maven仓库;
如果我们有这些jar包的远程仓库, 那么我们就可以非常方便快捷的使用源码形式的nacos了
本教程使用的是 jeecg 维护的nacos相关基础包, 依赖信息如下
<!--需要添加的nacos基础包-->
<dependencies>
<dependency>
<groupId>org.jeecgframework.nacos</groupId>
<artifactId>nacos-naming</artifactId>
<version>2.2.3</version>
</dependency>
<dependency>
<groupId>org.jeecgframework.nacos</groupId>
<artifactId>nacos-istio</artifactId>
<version>2.2.3</version>
</dependency>
<dependency>
<groupId>org.jeecgframework.nacos</groupId>
<artifactId>nacos-config</artifactId>
<version>2.2.3</version>
</dependency>
<dependency>
<groupId>org.jeecgframework.nacos</groupId>
<artifactId>nacos-console</artifactId>
<version>2.2.3</version>
</dependency>
</dependencies>
<!--需要额外引入jeecg的远程maven仓库-->
<repositories>
<repository>
<id>aliyun</id>
<name>aliyun Repository</name>
<url>https://maven.aliyun.com/repository/public</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>jeecg</id>
<name>jeecg Repository</name>
<url>https://maven.jeecg.org/nexus/content/repositories/jeecg</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
在一个新的springboot项目中, 引入上述依赖, 即可搭建起nacos运行的基础环境;
server:
servlet:
contextPath: /nacos
tomcat:
accesslog:
enabled: true
pattern: '%h %l %u %t "%r" %s %b %D %{User-Agent}i %{Request-Source}i'
basedir: ''
db:
num: 1
password: root
url: jdbc:mysql://localhost:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
user: root
management:
metrics:
export:
elastic:
enabled: false
influx:
enabled: false
nacos:
core:
auth:
enabled: false
caching:
enabled: true
server:
identity:
key: example
value: example
plugin:
nacos:
token:
expire:
seconds: 18000
system:
type: nacos
istio:
mcp:
server:
enabled: false
naming:
empty-service:
auto-clean: true
clean:
initial-delay-ms: 50000
period-time-ms: 30000
security:
ignore:
urls: /,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-ui/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**
spring:
sql:
init:
platform: mysql
将上述配置加入到application.yml
, 启动项目即可运行nacos
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?