这是开发halo插件系列教程的第一篇文章,本文主要是帮助大家把项目跑起来。不建议Java初学者阅读本文,因为Java初学者研究如何开发halo插件纯属浪费青春,此系列教程也不会介绍太多关于Java本身的一些东西。对于官方文档已经描述很清楚的东西,也不会过多阐述。
搭建环境
我们需要搭建Java环境和nodejs环境。Java环境可以通过IDEA下载jdk,建议下载17以上版本。nodejs官方目前建议下载18LTS版本,我个人建议下载最新LTS版本。halo博客的所有技术栈都是开源项目中较新的技术栈,因此千万别用老古董版本,否则莫名其妙报错。至于halo项目使用到的gradle,暂时可以省略,因为idea会自动下载使用包装器内的gradle版本。只不过这个时间可能很长,一般来说,环境问题可能会花费一个小时左右。
拉取项目
总共需要拉取两个项目,一个是halo的官方源码,一个是官方提供的插件模板plugin-starter。至于如何拉取项目源码,相信任何一个只要不是初学编程的人都应该清楚。
建议使用IDEA直接从git拉取项目,而不是手动拉取再用idea打开,简单省事。
安装依赖
idea打开之后,点击右侧的gradle图标,如下图:
可以点击上图的循环图标,进行重新加载依赖。也可以右键halo,也会看见重新加载项目之类的菜单。注意:很多人可能下载依赖会失败,建议百度研究一下gradle如何配置国内镜像源,这里不再介绍。上面这部分是属于后端的只是,关于gradle的问题,可以问问身边搞安卓开发的朋友,他们更靠谱。
我们需要对刚才拉取的两个项目都下载好依赖,同时,我们需要给这两个项目的页面下载依赖。这里属于前端知识,建议多问问前端朋友。我们打开cmd窗口,目录切换到项目下的console目录。使用pnpm install
进行安装依赖。注意:这里不要自以为是的使用npm或者yarn等其他包管理工具进行安装依赖。这些坑我都踩过了,可能莫名其妙的报错,建议少走弯路。这里需要提前安装pnpm包管理工具。建议全局安装:npm install -g pnpm
。两个项目下都有console目录,都需要安装依赖。依赖安装完后,halo项目的console目录还需要运行如下命令:pnpm build:packages
,这里别忘了。
上面一共进行了两个操作,一个是安装前端依赖,一个是安装后端依赖。当两个步骤都成功完成之后,我们就可以构建插件运行了。
打包插件
这个步骤我们可以参考官方文档中的运行插件这一节。我们同样使用cmd,切换目录到插件项目最顶层目录,使用如下命令:
./gradlew pnpmInstall
./gradlew build
打包完成后,我们在halo项目中的application.yaml文件所在目录中创建一个名为application-local.yaml的文件,初学者这里的文件名别乱用其他的。文件内容如下:
halo:
plugin:
runtime-mode: development
fixed-plugin-path:
# 配置为插件绝对路径,也就是插件源码所处的路径,不是打包后的target路径
- D:\Documents\Java\IdeaProjects\plugin-starter
然后修改启动设置,一定要注意我圈出来的地方:
然后启动halo项目,至于如何启动不会不知道吧?然后cmd切换到halo项目中的console目录下,运行pnpm dev
启动halo的后台页面项目。我相信很多人都会自以为是的打开浏览器访问http://localhost:3000,这里建议别浪费时间尝试,因为你用不了。halo系统有针对这个前端页面的代理,因此我们正确的访问地址是:http://localhost:8090/console。
我们初始化用户信息后,登录后台,可以看见多了这么一个页面:
后续
当我们修改插件之后,插件需要重新打包,然后重启halo。也可以请求 localhost:8090/apis/api.console.halo.run/v1alpha1/plugins/{name}/reload 重新加载插件。
到这里,我们就是掌握了基础的环境搭建以及运行步骤,下一篇文章开始正式讲解如何编写插件。
评论区