基于Halo源码构建Jar文件

源码下载

源码下载地址(github):https://github.com/halo-dev/halo.git

源码下载地址(gitee):https://gitee.com/halo-dev/halo.git

下载halo2.x源码后使用IDEA打开项目

IDEA配置

配置jdk版本:

如果出现了如下错误,可以通过配置jdk版本解决:

No matching variant of org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:4.4.1.3373 was found. The consumer was configured to find a library for use during runtime, compatible with Java 8, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin.api-version' with value '8.4'
  1. 解决jdk版本与gradle不兼容问题:

  2. 配置完成后点击应用按钮,再点击刷新按钮重新加载项目:

  3. 等待项目完成初始化加载,并出现如下内容代表项目可以被正常编译:

解决依赖下载超时问题

如果遇到依赖下载失败的情况,可以通过如下两种方式解决:

  1. 配置代理(PS:魔法,Clash客户端+订阅)

  2. 配置离线的gradle仓库(下载并解压到任意位置,如D:\data\gradleRepo目录下):
    gradle离线依赖
    在IDEA中配置gradle的用户目录:

编译项目

编译前端

console包含管理端和个人中心(nodejs项目),本地需要安装如下环境:

  • node-v20.11.0

  • pnpm(安装nodejs后,可以通过npm包管理器进行安装,pnpm安装请参考#常见编译问题)

  1. 安装完上述环境后,在IDEA中打开终端工具:

  2. 执行如下命令编译前端代码:

    # 进入console目录
    cd console
    
    # 使用pnpm工具安装依赖
    pnpm install
    # 构建项目中的所有包
    pnpm build:packages
    # 构建项目
    pnpm build
  3. 上述命令执行成功后,前端项目便会被自动编译到根目录下的application/src/main/resources目录下,并跟随后端项目打包到最终的jar文件中

编译后端

  1. 在IDEA中打开终端工具:

  2. 执行如下命令编译后端代码:

     # 下载预设插件
    ./gradlew.bat downloadPluginPresets
    # 构建jar包
    ./gradlew.bat clean build -x check
  3. 执行上述命令成功后,会在根目录下的application/build/libs目录下出现application-xxx-SNAPSHOT.jar,至此halo2.x生成jar文件结束

常见编译问题

  • Could not resolve all files for configuration ':classpath'.错误
    这个错误是jdk版本过低导致,通过配置根目录下的gradle.properties解决

  • Error while evaluating property 'generatedProperties' of task ':application:generateGitProperties'.错误
    在根目录下输入如下命令,将项目初始化为一个新的Git仓库:

    git init .
  • Execution failed for task ':application:downloadPluginPresets'.错误
    预设插件下载失败,可以通过如下三种方式解决:
    1.配置代理(PS:魔法)
    gradle.properties文件添加如下配置:
    systemProp.https.proxyHost=127.0.0.1
    systemProp.https.proxyPort=7890


    2.修改插件下载地址(修改application/build.gradle文件):

    3.注释插件下载任务,直接将如下资源拷贝到根目录下的application/src/main/resources/presets/plugins路径下:
    预设插件下载

  • pnpm安装
    pnpm是类似yarn、npm的依赖管理工具,可以通过npm命令在终端运行如下命令安装:
    npm install -g pnpm

参考链接