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记录:出现导入本地主题报错。
后端服务报错
去论坛查询得知:
评论区