Halo 开发环境搭建
前言
最近几个月,之前基于 Halo 1.6 版本搭建的博客,频繁收到腾讯云的报警通知,被告知出现了资源访问异常,404。

最近闲暇之余逛了下自个的博客,也发现网站加载缓慢问题,f12一看,部分资源甚至加载了1分多钟,实在太影响体验了,优化,必须狠狠的优化!

上 halo官网 逛了下,发现版本都迭代到 v2.13 了,1.x 不再维护了。那我考虑了下,不如顺带升级halo最新版本,毕竟官网说优化了不少,指不定博客资源加载慢问题就解决了。
一波操作猛如虎,过了几个小时后,基于 halo 2.13 + theme-Joe3 主题的博客就搭建好了,网站访问速度已经恢复正常。一波体验下来,感觉Halo 2.x版本改变挺大的,特别是插拔式组件模式。
经了解,Halo是基于 Java 的开源项目,由 Gradle 管理依赖,Thymeleaf 作为默认模板引擎,插件是使用 Java 和 JavaScript / TypeScript 编写的,UI 使用 Vuejs 编写。乍眼一看,好像都了解过,那更值得抽空部署研究研究了,最终记录了这篇博文。
一、Halo 后端部署
-
OpenJDK 17 LTS:
https://download.oracle.com/java/17/archive/jdk-17.0.10_windows-x64_bin.zip
-
Node.js 18 LTS:
https://nodejs.org/dist/v18.9.1/node-v18.9.1-x64.msi
-
pnpm 8
npm install -g pnpm
-
Gradle 8.4:
https://gradle.org/next-steps/?version=8.4&format=all
1、安装 JDK 17
①、将资源解压到本机相关目录,以我本机举例:

②、配置环境变量
配置JAVA_HOME,方便后续修改路径。

在 Path 变量中添加一行。
%JAVA_HOME%\bin
③、测试验证

2、安装 Node.js 18
①、双击安装 .msi 安装程序包
双击运行后,程序会自动配置环境变量。
②、测试

3、安装pnpm 8
①、直接基于npm 安装最新的版本即可。
npm install -g pnpm
pnpm -v

②、查看源
pnpm config get registry

③、修改源为阿里源
pnpm config set registry
https://registry.npmmirror.com/
4、安装 Gradle 8.4
①、将资源解压并放置对应目录,如

②、配置环境变量

Path下配置:

③、测试
gradle -v

④、配置下载源
由于Gradle自带Maven下载源是国外的,在后续下载依赖的过程中会比较慢。这里我们需要将下载源换成国内镜像。
init.d目录下新建 init.gradle 文件,并输入:
allprojects {
repositories {
mavenLocal()
maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" }
maven { name "Bstek" ; url "https://nexus.bsdn.org/content/groups/public/" }
mavenCentral()
}
buildscript {
repositories {
maven { name "Alibaba" ; url 'https://maven.aliyun.com/repository/public' }
maven { name "Bstek" ; url 'https://nexus.bsdn.org/content/groups/public/' }
maven { name "M2" ; url 'https://plugins.gradle.org/m2/' }
}
}
}
⑤、配置gradle资源仓库
新建文件夹,并配置进环境变量,作为gradle仓库。

5、启动后端项目
①、foke halo 代码至自己的仓库
https://github.com/CloudAdmirer/halo.git
②、使用idea拉取代码

③、暂停下载 gradle,配置自个的。



配置好后,让其下载项目依赖。
④、配置运行环境

⑤、配置开发参数

⑥、解决报错
点击Shorten the command line and rerun 即可。

后端项目启动成功:

6、启动前端项目
从 Halo 2.11 开始,Halo 项目的 console 目录同时包含了 Console(管理控制台)和 UC(个人中心)
①、进入项目目录
cd D:\\demo\\halo\\ui\\console-src
②、pnpm install

③、pnpm build:packages

④、pnpm dev

⑤、测试访问

- Console 控制台:http://localhost:8090/console

- UC 个人中心:http://localhost:8090/uc

二、Halo 插件部署
官方地址:https://docs.halo.run/developer-guide/plugin/introduction
1、fork 仓库
https://github.com/halo-dev/plugin-starter
到自己的仓库
https://github.com/CloudAdmirer/plugin-starter.git
2、修改配置文件
gradle-wrapper.properties、gradle.properties
D:\halo\plugin\plugin-starter\gradle\wrapper\gradle-wrapper.properties
distributionUrl=file\:///D:/soft/Gradle/gradle-8.0-all.zip

3、修改jdk、gradle依赖


4、修改gradle.properties
D:\halo\plugin\plugin-starter\gradle.properties
org.gradle.java.home=C:/Program Files/Java/jdk-17.0.10

如果不修改此项,指定jdk版本,可能出现

5、 ./gradlew.bat pnpmInstall

6、./gradlew.bat build

7、添加application-local.yaml
添加application-local.yaml
D:\demo\halo\application\src\main\resources\application-local.yaml
halo:
plugin:
runtime-mode: development
fixed-plugin-path:
# 配置为插件项目目录绝对路径
- D:\halo\plugin\plugin-starter

8、启动参数添加:
dev,win,local

9、测试访问
访问地址:http://localhost:8090/console/example

三、Halo 主题部署
官方地址:https://docs.halo.run/developer-guide/theme/prepare
暂无实践部署经验,仅有拉取代码下来部署的经验。
bug记录:出现导入本地主题报错。

后端服务报错

去论坛查询得知:

评论区