正在搬运下一页::>_<:: . . .

Hello,Halo—Halo框架入门(一)


Hello,Halo—Halo框架入门(一)

官方网站 官方文档

一、环境准备

1.JDK环境

1.4.3 起,版本要求为 11 以上的版本。1.4.3 以下需要 8 以上的版本。
本文以及本站使用1.5.4~版本,故使用jdk11。

2.MySQL环境

摘自帮助文档:这并不是 Halo 必须依赖的,Halo 默认使用自带的 H2 Database,无需单独安装。如果 H2 Database 不能满足你的要求,您需要在系统内安装并运行好 MySQL。具体要求:

  1. 版本:5.7 +
  2. 字符集(Character Set):utf8mb4
  3. 排序规则(Collate):utf8mb4_bin
  4. 存储引擎:InnoDB

出于性能以及手动增删改查的便捷性考虑,使用mysql持久化。

二、源码

仓库地址
此为halo项目地址,其中release-1.4为第一个稳定版本,release-1.5next分别为下一个版本的开发分支,我们二次开发时可以选择较新的master分支或者release-1.5分支。另外,2.0版本将在2022.9.30发布,届时也可体验最新版本的halo。

我使用的是master分支,fork后clone之:

git clone [email protected]:GAATTC0/halo.git

三、运行

克隆项目后使用IDE打开项目,识别并解析gradle项目配置,并进行依赖资源的import。

准备工作完成后编译项目,并运行run.halo.app.Application主类。

四、踩坑记录

1.编译时依赖和语法报错问题

如下面这两段:

return ignoredClasses.toArray(Class[]::new);
// ...
public static Pair<Ref, RevCommit> getLatestTag(final Git git)
        throws GitAPIException, IOException {
        final var tags = git.tagList().call();
        // ...
        try (final var revWalk = new RevWalk(git.getRepository())) {
            revWalk.reset();
            // ...
        }
    }
  • 依赖问题:gradle需要设置auto import,或是手动import依赖即可
  • 编译问题:项目中有很多java11的语法和api,需要检查Project StructureProject SDKProject Language Level是否正确设置为java11

2.编译时报错:”无效的源发行版: 11”

image-20220920221326863

试了https://segmentfault.com/a/1190000023536478等网上搜到的许多方式发现都没有鸟用,浪费了一个多小时编译不了。试了将环境变量中的jdk也改成11还是不行。

后来自己摸索,查看各种配置中的jdk是否为java11,最终发现了问题所在:
File | Settings | Build, Execution, Deployment | Build Tools | Gradle

image-20220920222900122

将这里的Gradle JVM设置为11即可。

3.启动springboot时报错:”Error running Application. Command line is too long. Shorten the command line and rerun.”

点击自动修复shorten command line and rerun即可。
其他方式参考:


2022-09-20 22:31:14.688  INFO 21196 --- [  restartedMain] run.halo.app.listener.StartedListener    : Halo started at         http://127.0.0.1:8090
2022-09-20 22:31:14.689  INFO 21196 --- [  restartedMain] run.halo.app.listener.StartedListener    : Halo admin started at   http://127.0.0.1:8090/admin
2022-09-20 22:31:14.689  INFO 21196 --- [  restartedMain] run.halo.app.listener.StartedListener    : Halo has started successfully!

看到启动成功的日志,至此,halo的启动准备工作就完成了。


畅所欲言
 上一篇
Halo主题介绍与热门主题对比 Halo主题介绍与热门主题对比
Halo主题介绍与热门主题对比 先说结论,经过对比最终决定使用的主题是: 一、主题介绍二、主题用法 当你搭建好博客之后,如果你不喜欢默认的主题,那么你可以去 https://halo.run/themes/ 选择你喜欢的主题。在这里主要
2022-09-24
下一篇 
使用java清理本地maven仓库无效文件 使用java清理本地maven仓库无效文件
由于maven的jar包频繁更新,随着maven reimport次数的增加,本地仓库中的无效文件(包括jar包、pom文件、校验和文件和未下载成功文件)会占用大量磁盘空间,但是把本地仓库暴力地全部清理后还需要重新下依赖,且下了依赖后IDE
2022-06-29
  目录