Refactor project build and run (#308)

This PR mainly adapts PR <https://github.com/halo-dev/halo/pull/5314>.

```release-note
None
```
wan92hen-patch-1
John Niang 1 year ago committed by GitHub
parent da096deb01
commit 2f2e1a6f1a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -7,63 +7,39 @@ description: 构建为可执行 JAR 和 Docker 镜像的文档
在此之前,我们推荐你先阅读[《准备工作》](./prepare),检查本地环境是否满足要求。 在此之前,我们推荐你先阅读[《准备工作》](./prepare),检查本地环境是否满足要求。
::: :::
一般情况下,为了保证版本一致性和可维护性,我们并不推荐自行构建和二次开发。但考虑到我们目前仅提供 Docker 镜像的发行版本,不再提供可执行 JAR 的发行版本,因此我们提供了构建的文档,以供用户自行构建。 一般情况下,为了保证版本一致性和可维护性,我们并不推荐自行构建和二次开发。
## 克隆项目 ## 克隆项目
如果你已经 fork 了相关仓库,请将以下命令中的 halo-dev 替换为你的 GitHub 用户名。 如果你已经 Fork 了相关仓库,请将以下命令中的 `halo-dev` 替换为你的 GitHub 用户名。
```bash ```bash
git clone https://github.com/halo-dev/halo git clone https://github.com/halo-dev/halo
# 或者使用 ssh 的方式 clone推荐 # 或者使用 ssh 的方式 clone推荐
# git clone git@github.com:halo-dev/halo.git
git clone git@github.com:halo-dev/halo.git # 或者使用 GitHub CLI 克隆(推荐)
# gh repo clone halo-dev/halo
# 切换到最新的 tag # 或者使用 GitHub CLI Fork推荐
# gh repo fork halo-dev/halo
cd halo cd halo
git checkout v2.4.0 # 切换到特定的分支或标签,请替换 ${branch_name}
``` git checkout ${branch_name}
:::tip
请务必按照以上要求切换到最新的 tag而不是直接使用 main 分支构建main 分支是我们的开发分支。此文档以 `2.12.0` 为例,查看最新的 tag 可使用 `git tag --column` 查看。
:::
## 构建 Console 和个人中心
```bash
cd path/to/halo
```
Linux / macOS 平台:
```bash
make -C console build
```
Windows 平台:
```bash
cd console
pnpm install
pnpm build:packages
pnpm build
``` ```
## 构建 Fat Jar ## 构建 Fat Jar
构建之前需要修改 `gradle.properties` 中的 `version` 为当前 tag 的版本号,如:`version=2.12.0` 构建之前需要修改 `gradle.properties` 中的 `version` 属性(推荐遵循 [SemVer 规范](https://semver.org/)),例如:`version=2.12.0`
```bash ```bash
cd path/to/halo cd path/to/halo
``` ```
下载预设插件: 下载预设插件(可选):
```bash ```bash
# Windows # Windows
@ -83,18 +59,21 @@ cd path/to/halo
./gradlew clean build -x check ./gradlew clean build -x check
``` ```
构建完成之后,在 halo 项目下产生的 `application/build/libs/application-$version.jar` 即为构建完成的文件。 构建完成之后,在 Halo 项目下产生的 `application/build/libs/halo-${version}.jar` 即为构建完成的文件。
最终部署文档可参考:[使用 JAR 文件部署](../../getting-started/install/jar-file.md)。
## 构建 Docker 镜像 ## 构建 Docker 镜像
进行之前,请确保已经完成上述操作,最终需要确认在 halo 项目的 `application/build/libs/` 目录已经包含了 `application-$version.jar` 文件 此之前,请确认已经构建好了 Fat Jar
```bash ```bash
cd path/to/halo cd path/to/halo
``` ```
```bash ```bash
docker build -t halo-dev/halo:2.12.0 . # 请替换 ${tag_name}
docker build -t halo-dev/halo:${tag_name} .
``` ```
```bash ```bash
@ -102,4 +81,4 @@ docker build -t halo-dev/halo:2.12.0 .
docker images | grep halo docker images | grep halo
``` ```
最终部署文档可参考:[使用 Docker Compose 部署](../../getting-started/install/docker-compose.md) 最终部署文档可参考:[使用 Docker Compose 部署](../../getting-started/install/docker-compose.md)

@ -16,21 +16,26 @@ description: 开发环境运行的指南
3. 主题Halo 主项目内已包含默认主题) 3. 主题Halo 主项目内已包含默认主题)
:::info 说明 :::info 说明
从 Halo 2.11 开始Halo 项目的 console 目录同时包含了 Console管理控制台和 UC个人中心以下统称为 UI。 从 Halo 2.13 开始Halo 项目的 `ui` 目录同时包含了 Console管理控制台和 UC个人中心以下统称为 UI。
当前 Halo 主项目并不会将 UI 的构建资源托管到 Git 版本控制,所以在开发环境是需要同时运行 UI 项目的。当然,在我们的最终发布版本的时候会在 CI 中自动构建 UI 到 Halo 主项目。 当前 Halo 主项目并不会将 UI 的构建资源托管到 Git 版本控制,所以在开发环境是需要同时运行 UI 项目的。当然,在我们的最终发布版本的时候会在 CI 中自动构建 UI 到 Halo 主项目。
::: :::
## 克隆项目 ## 克隆项目
如果你已经 fork 了相关仓库,请将以下命令中的 halo-dev 替换为你的 GitHub 用户名。 如果你已经 Fork 了相关仓库,请将以下命令中的 `halo-dev` 替换为你的 GitHub 用户名。
```bash ```bash
git clone https://github.com/halo-dev/halo git clone https://github.com/halo-dev/halo
# 或者使用 ssh 的方式 clone推荐 # 或者使用 ssh 的方式 clone推荐
# git clone git@github.com:halo-dev/halo.git
git clone git@github.com:halo-dev/halo.git # 或者使用 GitHub CLI 克隆(推荐)
# gh repo clone halo-dev/halo
# 或者使用 GitHub CLI Fork推荐
# gh repo fork halo-dev/halo
``` ```
## 运行 UI 服务 ## 运行 UI 服务
@ -42,19 +47,13 @@ cd path/to/halo
Linux / macOS 平台: Linux / macOS 平台:
```bash ```bash
make -C console dev ./gradlew :ui:dev
``` ```
Windows 平台: Windows 平台:
```bash ```bash
cd console ./gradlew.bat :ui:dev
pnpm install
pnpm build:packages
pnpm dev
``` ```
最终控制台打印了如下信息即代表运行正常: 最终控制台打印了如下信息即代表运行正常:
@ -101,11 +100,6 @@ halo:
``` ```
3. 修改 IntelliJ IDEA 的运行配置 3. 修改 IntelliJ IDEA 的运行配置
- macOS / Linux
将 Active Profiles 改为 `dev`,如图所示:
![IntelliJ IDEA Profiles](/img/developer-run/IntelliJ-IDEA-Profiles-macOS.png)
- Windows - Windows
@ -113,6 +107,12 @@ halo:
![IntelliJ IDEA Profiles](/img/developer-run/IntelliJ-IDEA-Profiles-Win.png) ![IntelliJ IDEA Profiles](/img/developer-run/IntelliJ-IDEA-Profiles-Win.png)
- macOS / Linux
将 Active Profiles 改为 `dev`,如图所示:
![IntelliJ IDEA Profiles](/img/developer-run/IntelliJ-IDEA-Profiles-macOS.png)
4. 点击 IntelliJ IDEA 的运行按钮,等待项目启动完成。 4. 点击 IntelliJ IDEA 的运行按钮,等待项目启动完成。
5. 或者使用 Gradle 运行 5. 或者使用 Gradle 运行

Loading…
Cancel
Save