You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu环境下从源码安装ThingsBoard CE的问题排查与指导

问题描述

我正尝试在Ubuntu系统上从源码安装ThingsBoard Community Edition(CE),构建过程已成功完成,但运行项目时遇到问题:执行mvn spring-boot:run -X命令时出现错误[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:3.2.12:run (default-cli) on project http: Process terminated with exit code: 1,且ThingsBoard HTTP Transport Service启动失败导致其他模块被跳过。

已完成的操作:

  • 克隆仓库:
    git clone --recursive https://github.com/thingsboard/thingsboard.git
    cd thingsboard
    
  • 安装依赖:
    sudo apt update
    sudo apt install -y openjdk-17-jdk maven
    
  • 构建项目:
    mvn clean install -DskipTests
    

疑问:

  1. 在Ubuntu上从源码构建并运行ThingsBoard的准确步骤是什么?
  2. 是否遗漏了某些依赖或配置?
  3. 如何调试HTTP Transport Service的故障?

解决方案

1. Ubuntu上从源码构建运行ThingsBoard CE的准确步骤

除你已完成的步骤外,需补充以下关键操作:

  • 配置数据库:默认H2嵌入式数据库仅适合快速测试,调试或生产建议用PostgreSQL:
    sudo apt install -y postgresql postgresql-contrib
    sudo -u postgres psql -c "CREATE DATABASE thingsboard;"
    sudo -u postgres psql -c "CREATE USER thingsboard WITH PASSWORD 'thingsboard';"
    sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE thingsboard TO thingsboard;"
    
    修改application/src/main/resources/application.yml,切换数据库配置为PostgreSQL:
    spring:
      datasource:
        url: jdbc:postgresql://localhost:5432/thingsboard
        username: thingsboard
        password: thingsboard
        driverClassName: org.postgresql.Driver
    
  • 初始化数据库Schema:
    mvn -DskipTests -Dplatform=postgres clean install
    
  • 运行主服务:不要单独启动HTTP Transport模块,直接运行ThingsBoard主应用:
    cd application
    mvn spring-boot:run
    

2. 可能遗漏的依赖或配置

  • 前端构建依赖:若需编译前端资源,需安装Node.js和npm:
    sudo apt install -y nodejs npm
    
  • 数据库驱动检查:确认application/pom.xml中已包含PostgreSQL驱动(源码默认已集成,但若构建时跳过模块需手动验证):
    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <scope>runtime</scope>
    </dependency>
    
  • 端口占用排查:HTTP Transport默认用8080端口,检查是否被占用:
    sudo lsof -i :8080
    
    若占用,杀掉进程或修改application.yml中server.port配置。

3. 调试HTTP Transport Service故障的方法

  • 分析DEBUG日志:mvn spring-boot:run -X输出的DEBUG日志中,重点查找http模块启动时的异常栈,通常会明确错误原因(如数据库连接失败、配置错误等)。
  • 单独运行模块:进入transport/http目录,单独启动该模块以聚焦问题:
    cd transport/http
    mvn spring-boot:run -X
    
  • 验证模块配置:检查transport/http/src/main/resources/application.yml中的数据库连接、服务端口、消息队列配置是否正确。
  • 重新构建模块:确保HTTP模块编译完整无错误:
    cd transport/http
    mvn clean install -DskipTests
    

内容的提问来源于stack exchange,提问作者esmail

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 10:08:20