本文适合刚学习完 Java 语言基础的人群,跟着本文可了解和运行 Tale 项目。示例均在 Windows 操作系统下演示

本文作者:HelloGitHub-秦人

HelloGitHub 推出的《讲解开源项目》[1]系列,今天给大家带来一款基于 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 准备工作

1. 确保本地已安装 Java8 开发环境:

2. 确保本地已安装 maven 工具:

3.2 下载项目

通过 git clone 命令把项目下载到本地:

git clone https://github.com/otale/tale.git

3.3 运行项目

我这里介绍了两种运行方式:通过 IDE 运行和命令行运行。

3.3.1 通过 IDE 运行

1. 将项目导入到 IDE 中,这里我使用的是开发工具是 IDEA:

2. 找到 com.tale.Application 类,直接运行:

3. 运行成功,如下图:

3.3.2 命令行运行

1. 切换到项目源码路径,编译源码命令如下:

mvn clean package -Pprod -Dmaven.test.skip=true

2. 切换路径到 taleargetdist 目录

3. 解压 tale.zip 压缩文件

4. 运行 tale-latest.jar

java -jar tale-latest.jar

5. 启动成功如下图:

3.4 项目启动成功

1. 初始化配置,访问: 首次登录,需要填写配置信息:

2. 登录后台管理系统,后台系统链接: 输入管理员账号和密码:admin 即可登录:

后台管理页面如下图:

3. 博客前台页面,博客前台链接:

Tale 博客包含的功能就不一一介绍了,跟着项目的文档,在 web 页面"点点点"就可以了。那么快去写自己博客上的第一篇博客吧!

四、最后

教程至此,这个项目应该已经在你的本地跑起来了。是不是很有成就感?后面怎么玩就看你自己了:部署到服务器正式上线、定制自己专属的功能、给项目贡献代码等,都是可以的。

本教程是针对有一定 Java 编程基础,但又不知道如果运行本项目的小伙伴。如果你是老手欢迎直接阅读下面参考资料,获取更多更详细的资料。

五、参考资料

  • [tale wiki](https://github.com/otale/tale/wiki)
  • [Blade 官方文档](https://lets-blade.com/docs/why-blade.html)
  • [jetbrick-template 项目地址](https://gitee.com/sub/jetbrick-template)
  • [Blade 项目地址](https://github.com/lets-blade/blade)

References

[1] 《讲解开源项目》: https://github.com/HelloGitHub-Team/Article

欢迎关注 HelloGitHub 公众号,获取更多开源项目的资料和内容

『讲解开源项目系列』启动——让对开源项目感兴趣的人不再畏惧、让开源项目的发起者不再孤单。跟着我们的文章,你会发现编程的乐趣、使用和发现参与开源项目如此简单。欢迎联系我们给我们投稿,让更多人爱上开源、贡献开源~

html博客源码_5分钟搭建私人Java博客系统——Tale相关推荐

  1. java 博客系统_讲解开源项目:5分钟搭建私人Java博客系统

    本文适合刚学习完 Java 语言基础的人群,跟着本文可了解和运行 Tale 项目.示例均在 Windows 操作系统下演示 本文作者:HelloGitHub-秦人 HelloGitHub 推出的< ...

  2. 个人博客系统源码 溯雪Sxlog轻博客源码 PHP开源 简洁干净轻博客源码

    源码简介: 溯雪(sxlog)是一款极为干净的轻博客程序,整个程序包不到200KB,极为简小,比一张照片都要小很多,简洁高效,占用内存极小,不依赖任何数据库,不依赖富文本编辑器,但她却拥有十分强大的排 ...

  3. python django博客源码_利用Django实现一个博客(附全部源码)

    不论什么语言,学Web开发必做的项目--个人博客. 本次项目基于Python的知名Web框架Django,从数据库到视图逻辑.再到模板语法,完整的走了一遍MTV开发流程. markdown非常适合写博 ...

  4. wget ip_10分钟搭建个人开源博客+域名ip解析

    有多少人有进行搭建个人的开源博客呢? 个人博客在咱们日常的工作中,以及在面试的时候都是加分项,不管是自己写的,还是用开源系统的都算. 一个博客从0到上线,到外部别人可以访问,经过多个步骤,比如选购云服 ...

  5. 一个本地分支能关联两个远程仓库吗_使用git分支保存hexo博客源码到github

    hexo是当前最火的静态博客框架,支持Markdown格式文章编辑并自动生成对应的静态网页,简单高效令人爱不释手. 使用hexo写博客的流程通常是, 通过hexo new post_name命令,会自 ...

  6. 博客园的最后一篇博文,还是要离开了(附带个人博客源码分享)

    引言 最近LZ一直忙于搭建自己的个人博客,目前已经初见成效,虽然很多功能还不完善,但看看文章,评论评论还是没问题的.俗话说,80%的需求是20%的功能满足的,目前LZ的个人博客就属于这个状态. 搭建个 ...

  7. python个人博客源码_我的使用Sanic的个人博客源码开源了!

    在 用asyncio写一个技术博客 里面说到的使用Sanic的个人博客已经完成了,先通过一个短视频来感受下效果吧: 我使用Sanic的博客源码开源了!https://www.zhihu.com/vid ...

  8. 个人博客源码_我的使用Sanic的个人博客源码开源了!

    在 用asyncio写一个技术博客 里面说到的使用Sanic的个人博客已经完成了,先通过一个短视频来感受下效果吧: 我使用Sanic的博客源码开源了!https://www.zhihu.com/vid ...

  9. 仿站长之家查询源码php,仿站长之家博客 织梦IT资讯博客源码 v1.0

    有福了,给大伙分享个好源码: 仿站长之家博客 织梦IT资讯博客源码,效果相当的炫酷,相当简洁大气高端,模板简单,全部已数据调用,只需后台修改栏目名称即可 模板介绍 仿站长之家博客 织梦IT资讯博客源码 ...

最新文章

  1. Oracle 数据表误删恢复 Flashback
  2. Poj 3246 Balanced Lineup(线段树基础)
  3. 博士申请 | 美国布兰迪斯大学张初旭教授招收机器学习方向全奖博士生
  4. 【已解决】cannot resolve file db.properties‘
  5. 如何捕获 EF 生成的 SQL 脚本?
  6. 带有Prometheus的弹簧靴和Micrometer第5部分:旋转Prometheus
  7. Git学习笔记01--初始化设置
  8. 算法,天使还是魔鬼?
  9. Win11如何调整任务栏大小 Win11调整任务栏大小的方法
  10. Web 开发人员和设计师必读文章推荐【系列三十】
  11. 铵钮提交事件PostBack之后,一些动态加载的物件丢失
  12. 2ask matlab仿真,2ask调制解调系统仿真实验程序
  13. Base16,Base32,Base64编码的介绍
  14. kali制作钓鱼网站
  15. 单片机课设———基于51单片机的智能风扇控制器(汇编语言)
  16. 软件工程投资回收率计算
  17. 机器学习-凸优化理论-课堂笔记
  18. 让python飞:形象理解python os模块、内存硬盘、字节字符、文件读写复制
  19. 【基本面的量化分析与投资的回报可能 - 上篇】
  20. Java警告The serializable class XXX does not declare a static final serialVersionUID field of type long

热门文章

  1. python增删改查csv文件_【练习】Python第四次:实现对文件的增删改查
  2. 检测正常和不正常图_医生提醒:激素正常不等于内分泌正常,带你走出内分泌失调误区...
  3. hybrid7 宝马active_【图】宝马ActiveHybrid7系 动力节能完美结合_汽车之家
  4. IOS UIViewController API,生命周期详解
  5. MySQL 外连接查询
  6. python 生成图片_python生成带有表格的图片
  7. 车联网大数据框架_大数据基础:ORM框架入门简介
  8. 【youcans 的 OpenCV 例程 200 篇】107. 退化图像的维纳滤波
  9. 【OpenCV 例程200篇】87. 频率域钝化掩蔽
  10. 浙江大学计算机考研408上岸,2016年跨考上岸浙江大学计算机研究生,初试412分经验谈!...