Halo 開源專案學習(一):專案啟動

John同學發表於2022-04-22

專案簡介

Halo 是一個優秀的開源部落格釋出應用,在 GitHub 上廣受好評,正好最近在練習寫部落格,藉此記錄一下學習 Halo 的過程。

專案下載

從 GitHub 上拉取專案原始碼,Halo 從 1.4.3 開始,最低支援的 JRE 版本為 11,本人下載的是 1.4.13 版本。

前提設定

匯入專案

因為 Halo 使用 Gradle 構建,所以在 idea 中匯入 Gradle 專案,與 Maven 不同,Gradle 專案的依賴在 build.gradle 中新增。

Halo 中主要使用瞭如下依賴:

  • Spring Boot:一個用來簡化 Spring 的搭建和開發過程的全新框架;
  • Spring Data JPA:持久層框架;
  • Spring Web:構建 Web 應用;
  • Undertow:高效能 Web 容器;
  • Freemarker:模板引擎;
  • H2 Database:嵌入式資料庫,無需安裝;
  • MySQL:關係型資料庫;
  • Lombok:Java 高效開發工具;
  • Swagger:生成介面文件;
  • Hutool:開源 Java 工具類;
  • 七牛雲:雲端儲存伺服器;
  • 阿里雲 OSS:提供海量、安全、低成本、高可靠的雲端儲存服務;
  • Flexmark:將 Markdown 轉化為 HTML。

ieda 設定

Halo 使用的是 JDK 11,所以需要將 idea 中的 JDK 版本設定成 JDK 11。依次點選 File -> Project Structure -> Project SDK 設定 JDK。

Halo 開源專案學習(一):專案啟動

Gradle 也需要設定為 JDK 11,依次點選 File -> Settings -> 搜尋 Gradle 設定 JDK。

Halo 開源專案學習(一):專案啟動

啟動專案

注意事項

專案啟動前請做好如下準備:

  1. 確保 JDK 的版本符合要求,本文使用 JDK 11;
  2. 確保所有的依賴都正常匯入(本次實踐未發生異常);
  3. 確保 resources/templates/themes 目錄不為空,正常情況下應該有 anatole 資料夾。為空是因為使用 Git 克隆時沒有克隆子模組,可以在 Halo 官網的主題倉庫下載 Anatole 主題,解壓後重新命名為 anatole,並複製到 themes 目錄下;
  4. Halo 預設使用 H2 Database,該資料庫無需安裝,因此可以直接啟動專案。如果希望使用 MySQL,則需要在 application.yaml 檔案中註釋掉 H2 Database 的配置,並新增 MySQL 的相關配置(資料庫名為 'halodb'):
# MySQL 配置
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/halodb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
username: root
password: 123456

執行專案

點選執行,專案正常啟動,控制檯列印瞭如下資訊:

Halo 開源專案學習(一):專案啟動

上述資訊提示我們訪問 127.0.0.1:8090,首次訪問該頁面時,頁面會重定向到初始化頁面,使用者需要設定博主、部落格的相關資訊,如使用者名稱、密碼等。

Halo 開源專案學習(一):專案啟動

資訊填寫完畢後,點選安裝,之後頁面會跳轉到登入頁面,此時使用者可以使用之前設定的賬號和密碼進行登入。登入成功後進入 'Halo Dashboard' 頁面,且系統會自動建立一篇文章 'Hello Halo!'。'Halo Dashboard' 頁面是部落格的後臺管理頁面,供管理員使用,訪問 127.0.0.1:8090/admin 時就會進入該頁面(需登入)。

Halo 開源專案學習(一):專案啟動

部落格的主頁可訪問 127.0.0.1:8090,在該頁面可看到博主發表的所有文章。

Halo 開源專案學習(一):專案啟動

至此,Halo 專案在 idea 上啟動成功!

相關文章