ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Halo 开源项目学习(一):项目启动

2022-04-22 08:31:06  阅读:149  来源: 互联网

标签:11 JDK 项目 Gradle 开源 Halo 页面


项目简介

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。

启动项目

注意事项

项目启动前请做好如下准备:

  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

运行项目

点击运行,项目正常启动,控制台打印了如下信息:

上述信息提示我们访问 127.0.0.1:8090,首次访问该页面时,页面会重定向到初始化页面,用户需要设置博主、博客的相关信息,如用户名、密码等。

信息填写完毕后,点击安装,之后页面会跳转到登录页面,此时用户可以使用之前设置的账号和密码进行登录。登录成功后进入 'Halo Dashboard' 页面,且系统会自动创建一篇文章 'Hello Halo!'。'Halo Dashboard' 页面是博客的后台管理页面,供管理员使用,访问 127.0.0.1:8090/admin 时就会进入该页面(需登录)。

博客的主页可访问 127.0.0.1:8090,在该页面可看到博主发表的所有文章。

至此,Halo 项目在 idea 上启动成功!

标签:11,JDK,项目,Gradle,开源,Halo,页面
来源: https://www.cnblogs.com/johnlearning/p/16177338.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有