前言
相较于之前2.2版本的构建方式,halo2.4及以上的构建方法发生了一些变化,以下内容将基于从源码构建halo 2.x jar包,更新部分内容
环境准备
仅将此文章中的archlinux从源码构建halo 2.x jar包更换为ubuntu 22.04。
ubuntu仓库中的nodejs相较官方需求又太低了。
我在此不安装ubuntu仓库中的nodejs,而是从官网下载18.16.1版本,并手动安装。
wget -O node.tar.xz https://nodejs.org/dist/v18.16.1/node-v18.16.1-linux-x64.tar.xz
# 假设保存路径为/home/user
tar -xvf node.tar.xz
mv node-v18.16.1-linux-x64/ node/
# 后续更新可能导致版本不同,具体使用的版本请访问nodejs官网获取,此处仅仅作为示例
vim ~/.bashrc
# 更改环境变量
export PATH=$PATH:/home/user/node/bin
# 将上一条命令添加到~/.bashrc文件中,并保存退出
source ~/.bashrc
完成上述步骤后,执行node --version
若输出版本号,则说明配置完成
克隆仓库
从 2.4.0 开始,Console 项目已经合并到 Halo 主项目,所以不再需要单独克隆 Console 的项目仓库。
所以仅需执行一条git命令即可。
假设此处执行git命令时,在/home/user目录下
git clone https://github.com/halo-dev/halo
cd halo
git tag --column
# 使用git tag命令查看最新的tag
git checkout v2.6.1
# 切换到指定的tag,此处以2.6.1为例
配置文件
配置文件的注意事项仍然相同。
在当前版本中,配置文件路径变更为halo/application/src/main/resources
,命名规则无变化。
配置文件内容稍有变化,以下是我修改过的版本,仍然以mariadb数据库为例。
其他数据库的配置文件参考同一目录下的其他模板,保持不变则是h2数据库。
server:
port: 8090
forward-headers-strategy: framework
compression:
enabled: true
error:
whitelabel:
enabled: false
spring:
r2dbc:
url: r2dbc:pool:mariadb://localhost:3306/your_database_name # 更改为你的数据库名
username: your_username # 更改为你的用户名
password: your_password # 更改为你的密码
sql:
init:
mode: always
platform: mysql
codec:
max-in-memory-size: 10MB
messages:
basename: config.i18n.messages
web:
resources:
cache:
cachecontrol:
max-age: 365d
halo:
external-url: http://your_address:${server.port} # 更改为你的地址
work-dir: ${user.home}/.halo2
plugin:
plugins-root: ${halo.work-dir}/plugins
attachment:
resource-mappings:
- pathPattern: /upload/**
locations:
- migrate-from-1.x
springdoc:
api-docs:
enabled: false
writer-with-order-by-keys: true
logging:
file:
name: ${halo.work-dir}/logs/halo.log
logback:
rollingpolicy:
max-file-size: 10MB
total-size-cap: 1GB
max-history: 0
management:
endpoints:
web:
exposure:
include: ["health", "info", "startup", "globalinfo", "logfile"]
endpoint:
health:
probes:
enabled: true
info:
java:
enabled: true
os:
enabled: true
构建console
执行make -C console build
,等待执行完毕即可。
构建jar包
构建之前需要修改gradle.properties
中的version
为当前tag的版本号,如version=2.6.1
。
执行./gradlew clean build -x check
,等待执行完毕即可。
构建完成之后,在halo/application/build/libs/application-2.6.1.jar
即为构建完成的文件。
使用java -jar application-2.6.1.jar
运行即可。
其他
初始化时,会报错服务器内部错误
。但后续不会出现。
观察日志后,推测原因如下:从源码构建的jar包默认不包含插件,halo在初始化时并未找到任何插件,故报错。(瞎猜的,切勿当真)