You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.3 KiB

title description
构建 构建为可执行 JAR 和 Docker 镜像的文档

:::info 在此之前,我们推荐你先阅读《准备工作》,检查本地环境是否满足要求。 :::

一般情况下,为了保证版本一致性和可维护性,我们并不推荐自行构建和二次开发。但考虑到我们目前仅提供 Docker 镜像的发行版本,不再提供可执行 JAR 的发行版本,因此我们提供了构建的文档,以供用户自行构建。

克隆项目

如果你已经 fork 了相关仓库,请将以下命令中的 halo-dev 替换为你的 GitHub 用户名。

git clone https://github.com/halo-dev/halo

# 或者使用 ssh 的方式 clone推荐

git clone git@github.com:halo-dev/halo.git

# 切换到最新的 tag

cd halo

git checkout v2.4.0

:::tip 请务必按照以上要求切换到最新的 tag而不是直接使用 main 分支构建main 分支是我们的开发分支。此文档以 2.6.0 为例,查看最新的 tag 可使用 git tag --column 查看。 :::

:::warning 从 2.4.0 开始Console 项目已经合并到 Halo 主项目,所以不再需要单独克隆 Console 的项目仓库。

详情可查阅:https://github.com/halo-dev/halo/issues/3393 :::

构建 Console

cd path/to/halo

Linux / macOS 平台:

make -C console build

Windows 平台:

cd console

pnpm install

pnpm build:packages

pnpm build

构建 Fat Jar

构建之前需要修改 gradle.properties 中的 version 为当前 tag 的版本号,如:version=2.6.0

cd path/to/halo
# Windows
./gradlew.bat clean build -x check

# macOS / Linux
./gradlew clean build -x check

构建完成之后,在 halo 项目下产生的 application/build/libs/halo-2.6.0.jar 即为构建完成的文件。

构建 Docker 镜像

在进行之前,请确保已经完成上述操作,最终需要确认在 halo 项目的 application/build/libs/ 目录已经包含了 halo-2.6.0.jar 文件。

cd path/to/halo
docker build -t halo-dev/halo:2.6.0 .
# 插件构建完成的版本
docker images | grep halo

最终部署文档可参考:使用 Docker Compose 部署