本文適合剛學習完 Java 語言基礎的人群,跟着本文可了解和運行 Tale 項目。示例均在 Windows 操作系統下演示

本文作者:HelloGitHub-秦人
HelloGitHub 推出的《講解開源項目》系列,今天給大家帶來一款基於 Java 語言的輕量級博客開源項目——Tale
它擁有小、美、快、穩的特點。該項目完全開源、免費,能夠讓你快速搭建包含前、后台的博客系統,大大節省了搭建私人博客的時間,開箱即用。讓你可以專注於創作,讓有故事的人更方便的表達想法。
Tale 的項目地址:https://github.com/otale/tale
想要快速搭建一套自己的博客,那就跟着本文的步驟。你只需要花 5 分鍾,就能擁有一個屬於自己的私人博客了,並且可以對整個項目有一個完成的概念和感覺。下面是搭建完成的效果圖:

那就讓我們開始吧!
一、技術棧
Tale 基於的技術如下:
- Blade 框架:快速搭建 Web 應用程序的開源框架,該框架代碼簡潔、風格優雅。
- Jetbrick-template 模板引擎:適合於動態 HTML 頁面輸出或者代碼生成,可替代 JSP 頁面或者 Velocity 等模板。 指令和 Velocity 相似,表達式和 Java 保持一致,易學易用。
- SQLite 數據庫:是一種嵌入式數據庫,它的數據庫就是一個文件。
二、項目結構
該項目采用 MVC 模式:Model 數據層、View 展現層,Controller 邏輯層。下面簡單介紹下項目的結構,便於我們翻閱源碼、開發和運行。項目結構如下圖:

項目分為前端、后台兩部分,下面我們分開來介紹:
2.1 后台代碼目錄說明
annotation:自定義注解目錄,包括系統日志的注解類。bootstarp:初始化操作目錄,包括初始化進程類, sqlite數據庫初始化類,公共常量類等。controller:業務的控制器目錄,包括文章控制器,分類控制器,初始化博客的控制器等。extension:底層公用代碼目錄,包括后台公共函數,主題公共函數。hooks:攔截器/過濾器目錄,做一些攔截器的操作。model:數據模型目錄,包括數據庫模型,參數模型,業務模型。service:業務層目錄,包括站點,系統配置,分類,標簽,文章,評論的業務類。task:定時任務目錄,可自定時添加定時任務。utils:業務層工具類目錄,包括圖像工具類,緩存工具類,公用工具類。validators:驗證器目錄,包括保存文章的校驗,添加評論的校驗功能。Application:入口類,在 IDE 中可直接運行。
2.2 前台代碼目錄說明
plugins:插架存放目錄,此目錄作者廢棄了static:靜態資源目錄,包括 css、images、js 和第三方插件templates:模板資源目錄,包括后台管理界面、公共模板和主題模板,支持擴展主題application*.properties:項目環境配置文件
Tale 的項目的結構很簡單和清晰,想把它運行起來也超級簡單。你是不是開始手癢癢了,那接下來我們一起讓它運行起來吧。
三、實戰操作
3.1 准備工作
-
確保本地已安裝 Java8 開發環境:

-
確保本地已安裝 maven 工具:

3.2 下載項目
通過 git clone 命令把項目下載到本地:
git clone https://github.com/otale/tale.git
3.3 運行項目
我這里介紹了兩種運行方式:通過 IDE 運行和命令行運行。
3.3.1 通過 IDE 運行
-
將項目導入到 IDE 中,這里我使用的是開發工具是 IDEA:

-
找到
com.tale.Application類,直接運行:
-
運行成功,如下圖:

3.3.2 命令行運行
-
切換到項目源碼路徑,編譯源碼命令如下:
mvn clean package -Pprod -Dmaven.test.skip=true
-
切換路徑到
tale\target\dist\目錄
-
解壓 tale.zip 壓縮文件

-
運行
tale-latest.jarjava -jar tale-latest.jar -
啟動成功如下圖:

3.4 項目啟動成功
-
初始化配置,訪問:http://127.0.0.1:9000/ 首次登錄,需要填寫配置信息:

-
登錄后台管理系統,后台系統鏈接:http://127.0.0.1:9000/admin/login 輸入管理員賬號和密碼:admin 即可登錄:

后台管理頁面如下圖:

-
博客前台頁面,博客前台鏈接:http://127.0.0.1:9000/

Tale 博客包含的功能就不一一介紹了,跟着項目的文檔,在 web 頁面“點點點”就可以了。那么快去寫自己博客上的第一篇博客吧!
四、最后
教程至此,這個項目應該已經在你的本地跑起來了。是不是很有成就感?后面怎么玩就看你自己了:部署到服務器正式上線、定制自己專屬的功能、給項目貢獻代碼等,都是可以的。
本教程是針對有一定 Java 編程基礎,但又不知道如果運行本項目的小伙伴。如果你是老手歡迎直接閱讀下面參考資料,獲取更多更詳細的資料。
五、參考資料

歡迎關注 HelloGitHub 公眾號,獲取更多開源項目的資料和內容
『講解開源項目系列』啟動——讓對開源項目感興趣的人不再畏懼、讓開源項目的發起者不再孤單。跟着我們的文章,你會發現編程的樂趣、使用和發現參與開源項目如此簡單。歡迎聯系我們給我們投稿,讓更多人愛上開源、貢獻開源~
