專案簡介
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。
Gradle 也需要設定為 JDK 11,依次點選 File -> Settings -> 搜尋 Gradle 設定 JDK。
啟動專案
注意事項
專案啟動前請做好如下準備:
- 確保 JDK 的版本符合要求,本文使用 JDK 11;
- 確保所有的依賴都正常匯入(本次實踐未發生異常);
- 確保 resources/templates/themes 目錄不為空,正常情況下應該有 anatole 資料夾。為空是因為使用 Git 克隆時沒有克隆子模組,可以在 Halo 官網的主題倉庫下載 Anatole 主題,解壓後重新命名為 anatole,並複製到 themes 目錄下;
- 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
執行專案
點選執行,專案正常啟動,控制檯列印瞭如下資訊:
上述資訊提示我們訪問 127.0.0.1:8090,首次訪問該頁面時,頁面會重定向到初始化頁面,使用者需要設定博主、部落格的相關資訊,如使用者名稱、密碼等。
資訊填寫完畢後,點選安裝,之後頁面會跳轉到登入頁面,此時使用者可以使用之前設定的賬號和密碼進行登入。登入成功後進入 'Halo Dashboard' 頁面,且系統會自動建立一篇文章 'Hello Halo!'。'Halo Dashboard' 頁面是部落格的後臺管理頁面,供管理員使用,訪問 127.0.0.1:8090/admin 時就會進入該頁面(需登入)。
部落格的主頁可訪問 127.0.0.1:8090,在該頁面可看到博主發表的所有文章。
至此,Halo 專案在 idea 上啟動成功!