惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
雷峰网
雷峰网
量子位
V
V2EX
S
SegmentFault 最新的问题
月光博客
月光博客
博客园 - 【当耐特】
Hugging Face - Blog
Hugging Face - Blog
V
Visual Studio Blog
大猫的无限游戏
大猫的无限游戏
T
Tailwind CSS Blog
博客园_首页
博客园 - Franky
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
美团技术团队
Y
Y Combinator Blog
The Cloudflare Blog
C
Check Point Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
腾讯CDC
B
Blog
Stack Overflow Blog
Stack Overflow Blog
P
Proofpoint News Feed

Halo - 强大易用的开源建站工具

使用 MCP,让 AI Agent 管理网站 商品询价、身份验证与编辑体验升级,Halo 2.26 发布 Halo 首个支持可视化编辑的主题,Publica 公共门户正式发布! 如何选择最佳网站搭建方案?2026年12款建站工具对比测评! Halo 和 WordPress 对比:开源 CMS 怎么选? Halo 和 Ghost 对比:博客、简报与会员订阅怎么选? Halo 和 Typecho 对比:现代 CMS 还是轻量博客? Halo 和 EmDash 对比:成熟 CMS 还是 Cloudflare 新方案? Halo 和 Hugo 对比:动态 CMS 还是静态网站生成器? Halo 和 Hexo 对比:动态 CMS 还是静态博客? Halo 和 Strapi 对比:全栈建站平台还是 Headless CMS? 在群晖 NAS 上用 Docker 部署 Halo 用 Obsidian 写文章,一键发布到 Halo 域名是什么?新手注册域名前要知道的 7 件事 虚拟主机、VPS 和云服务器有什么区别?建站服务器怎么选 建站需要准备什么?域名、服务器、备案和 SSL 的关系 域名解析:A 记录、CNAME、MX、TXT 分别怎么用 网站备案是什么?个人备案和企业备案有什么不同 SSL 证书和 HTTPS 是什么?免费证书够用吗 CDN 是什么?网站什么时候需要 CDN robots.txt 是什么?新手建站常见配置误区 Sitemap 是什么?它对网站收录有什么作用 SEO 写作基础:标题、描述、URL 和内链怎么做 301 和 302 重定向有什么区别?网站改版怎么降低排名风险 Google Analytics、Umami、Rybbit:流量统计工具怎么选 网站图片优化指南:格式、压缩和懒加载怎么做 网站安全基础:建站后必须做的 6 件事 Halo 如何定时发布文章 Halo 如何接入 Bing Webmaster Tools 支持优惠券和折扣码,Halo 2.25 发布
在本地搭建 Halo 插件开发环境
Ryan Wang · 2026-04-15 · via Halo - 强大易用的开源建站工具

在本地开发 Halo 插件时,需要让 Halo 以开发模式加载你的插件项目。建议先用官方脚手架生成工程,再任选下面两种运行方式之一。

使用脚手架创建插件项目

官方提供 create-halo-plugin 脚手架,可在本机快速生成带 Gradle、前端构建与 DevTools 集成的插件模板。

前提条件

创建步骤

在终端执行:

pnpm create halo-plugin

按交互提示填写即可,常见字段含义如下:

  • Plugin name:插件标识,只能包含小写字母、数字和连字符

  • Domain:用于 Java 包名与 group 的包域,例如 com.example

  • Author name:作者展示名

  • Choose UI build tool:控制台前端构建工具,可选 RsbuildVite

命令结束后会生成一个独立目录,使用编辑器打开该目录即可开始开发。

方式一:使用 Halo Gradle 插件(推荐)

通过上述脚手架创建的项目已集成 DevTools。在插件项目根目录执行 haloServer 任务时,Gradle 会拉起一个用于插件开发的 Halo 容器,并把当前工程作为插件挂载进去。

前提条件

  • 已安装 Docker(并保证 Docker 守护进程正在运行)

  • 已安装 JDK 21

    • macOS / Linux

      # 推荐使用 SDKMAN 管理 JDK 版本,如已安装可略过
      curl -s "https://get.sdkman.io" | bash
      
      # 安装 JDK 21
      sdk install java 21-tem
    • Windows

      前往 https://adoptium.net 下载 JDK 21 安装包,按向导安装即可。

步骤

在插件项目根目录执行:

 # macOS / Linux
 ./gradlew haloServer

 # Windows
 ./gradlew.bat haloServer

首次拉取镜像可能需要一些时间。启动成功后,控制台会打印默认访问地址与账号密码,例如:

 Halo 初始化成功,访问:http://localhost:8090/console
 用户名:admin
 密码:admin

浏览器打开控制台,在插件列表中应能看到当前插件已加载;修改代码后按 DevTools 文档说明进行热更新或重新构建即可。

该方式不需要在本机单独克隆、编译 Halo 主仓库,环境一致性好,适合绝大多数插件开发场景。

方式二:本地运行 Halo 源码并指定插件目录

当本机无法使用 Docker,或你需要同时调试 Halo 核心与插件行为时,可以在本地从源码启动 Halo,并通过配置把插件目录固定为开发路径。

前提条件

  • 已按 Halo 开发环境运行 在本机成功运行 Halo 源码工程

  • 已有一个可用的插件项目(通常由脚手架创建),且能通过 ./gradlew build 正常产出插件包

步骤

在插件项目中先完成一次构建:

 # macOS / Linux
 ./gradlew build

 # Windows
 ./gradlew.bat build

在 Halo 工程 application/src/main/resources 下创建或编辑 application-local.yaml,增加插件开发模式与固定路径(路径改为你的插件项目根目录的绝对路径):

 halo:
   plugin:
     runtime-mode: development
     fixed-plugin-path:
       - /path/to/your-plugin-project

Windows 示例:

halo:
  plugin:
    runtime-mode: development
    fixed-plugin-path:
      - C:\path\to\your-plugin-project

在 Halo 仓库根目录启动(与官方文档中的 profile 保持一致):

# macOS / Linux
./gradlew bootRun --args="--spring.profiles.active=dev,local"

# Windows
gradlew.bat bootRun --args="--spring.profiles.active=dev,win,local"

访问 http://localhost:8090/console,确认插件已出现在插件列表中且功能正常。

如何选择

方式 优点 适用场景
Gradle haloServer 无需维护 Halo 源码;环境与官方容器一致;上手快 日常插件功能与 UI 开发(推荐默认)
Halo 源码 + fixed-plugin-path 可调试核心与插件联动;不依赖 Docker 无法使用 Docker,或需要修改/调试 Halo 本体

更多关于 Halo 插件开发的文档可查阅:Halo 文档 - 插件开发