【ThingsBoard初体验】本地运行源码踩坑记录

news2024/11/16 3:41:36

前言

运行源码之前,请先编译源码。这很重要!!!
官网源码编译教程:http://www.ithingsboard.com/docs/user-guide/contribution/yuanmabianyi/

如果编译过程中出现报错,请看我上一篇文章:【ThingsBoard初体验】本地编译踩坑之旅

本机环境

JDK:17
Maven:3.6.3
idea:最新社区版
ThingsBoard源码:3.7.1-SNAPSHOT
操作系统:Windows 10 专业版

官网源码运行教程:http://www.ithingsboard.com/docs/user-guide/contribution/yuanmayunxing3.3.0/

根据官网教程,把该安装的环境,该安装的工具,该配置的配置都操作好。

准备工作:初始化数据库

在运行源码之前,需要初始化数据库。

因为我日常学习和工作使用的数据库都是 MySQL,我本地环境是没有安装 PostgreSQL 的,而 ThingsBoard 的数据库使用的是 PostgreSQL,所以需要自己安装 PostgreSQL。
教程自行百度。

安装好并确认可以正常连接到 PostgreSQL 之后,需要做2个操作:

(1)在 application 下的 yml 文件中修改数据源配置

在这里插入图片描述
(2)将 dao 下的 sql 文件拷贝到 application 下的 data 中,用于数据的初始化

在这里插入图片描述
然后,运行 ThingsboardInstallApplication,开始初始化数据库。

但是,这一步我又又又又报错了!!!

报错1:gen包找不到

在这里插入图片描述
这里可以看出,gen包找不到,网上搜索到的原因是编译版本的问题。

解决办法

在 common下的 pom 文件中添加 < build >< /build >

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>17</source>
                <target>17</target>
            </configuration>
        </plugin>
    </plugins>
</build>

在这里插入图片描述
提醒一下,添加完记得刷新一下 maven 依赖,不然直接 install 还是会报错的!
在运行 ThingsboardInstallApplication 之前,建议先进行源码编译,因为我在不编译的情况下,直接执行 maven install,报错如下:

org.thingsboard.server.common.adaptor不存在

编译之后,就不会报这个错了!

报错2:thingsboard 库不存在

但是,运行 ThingsboardInstallApplication 仍然会报错

正常来说,运行 ThingsboardInstallApplication 会自动创建 thingsboard 库,但我这里没有自动创建,所以报了这个错。

在这里插入图片描述

解决办法:手动创建 thingsboard 库

如果懒得动手,就把 yml 文件里面配置的库名改成 postgres(学习阶段可以这么来,但不建议这么干哈!该动手的时候不要图省事~)

在这里插入图片描述
在这里插入图片描述
接着再次运行 ThingsboardInstallApplication,这个时候就可以成功初始化数据库了,数据库建表完成。如下图:

在这里插入图片描述

到这里,准备工作结束了!

正文开始:源码运行

正文!开始即结束~~O(∩_∩)O

准备工作出现的问题解决完了,运行源码基本就没什么问题了!

如果有小伙伴运行源码还会报错,请自行搜索解决办法哈。

运行 ThingsboardServerApplication 即可。
后端地址:http://127.0.0.1:8080
swagger地址:http://127.0.0.1:8080/swagger-ui/index.html

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1961041.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《LeetCode热题100》---<滑动窗口篇两道>

本篇博客讲解LeetCode热题100道滑动窗口篇中的两道题 第一道&#xff1a;无重复字符的最长子串 第二道&#xff1a;找到字符当中的所有字母异位词 第一道&#xff1a;无重复字符的最长子串 哈希滑动窗口 class Solution {public int lengthOfLongestSubstring(String s0) {int…

nginx出现Refused to apply inline style because it violates

Content Security Policy的错误。根据错误提示&#xff0c;nginx拒绝应用内联样式&#xff0c;因为它违反了内容安全策略&#xff08;Content Security Policy&#xff09;。内容安全策略是一种浏览器机制&#xff0c;用于防止潜在的安全漏洞&#xff0c;通过限制从外部来源加载…

初步入门C ++之继承的概念

继承 ​ 继承&#xff0c;他的功能就如同他的名字一样&#xff0c;可以继承一个类的数据和方法&#xff0c;然后增添一些自己独有的数据和方法&#xff1a; 根据我们之前讲解初步入门C之类的例子&#xff0c;假如我们现在有一个长方体的类&#xff0c;它和长方型类唯一不一样…

屏幕录制与视频编辑的新纪元Camtasia Studio 2024

在数字化时代&#xff0c;视频已成为我们日常工作和生活中不可或缺的一部分。无论是教育、培训、营销还是娱乐&#xff0c;高质量的视频内容都发挥着至关重要的作用。而提到屏幕录制和视频编辑软件&#xff0c;Camtasia Studio无疑是一个家喻户晓的名字。随着2024年新版本的发布…

【Vue3】自定义组件

【Vue3】自定义组件 背景简介开发环境开发步骤及源码 背景 随着年龄的增长&#xff0c;很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来&#xff0c;技术出身的人总是很难放下一些执念&#xff0c;遂将这些知识整理成文&#xff0c;以纪念曾经努力学习奋斗的日子。本文…

Java基本语法学习的案例练习

本文是在学习过C语言后&#xff0c;开始进行Java学习时&#xff0c;对于基本语法的一些案例练习。案例内容来自B站黑马编程课 1.HelloWorld 问题介绍;请编写程序输出“HelloWorld”. public class HelloWorld { public static void main(String[] args) { System.out.print…

树状机器学习模型综述(含python代码)

树状机器学习模型综述 树状模型是机器学习中一种非常重要的算法类别&#xff0c;因其直观的结构和良好的可解释性而广泛应用于分类和回归任务。本文将综述几种常见的树状模型&#xff0c;包括决策树、随机森林、LightGBM、XGBoost和CatBoost&#xff0c;讨论它们的原理、用途以…

高品质定制线缆知名智造品牌推荐-精工电联:高压线缆行业定制服务的领航者

定制线缆源头厂家推荐-精工电联&#xff1a;高压线缆行业定制服务的领航者 在当今这个高度信息化的社会&#xff0c;电力传输与分配系统的稳定运行至关重要。作为连接各个电力设备的纽带&#xff0c;高压线缆的质量直接关系到电力系统的安全性和稳定性。在定制高压线缆行业中&a…

【RK3568】点亮eDP屏幕+双屏异显

一、驱动eDP屏幕 一般来说&#xff0c;屏幕的规格书中会找到屏幕的相关参数&#xff0c;如没有&#xff0c;也可直接找屏幕厂商要&#xff0c;首先打开屏幕的规格书&#xff0c;搜索EDID Table&#xff0c;可找到如下信息&#xff1a; &#xff08;1&#xff09;显示时序配置 将…

越是熟人之间,越要注意这三个方面

不管什么时候&#xff0c;不管与谁相处&#xff0c;社交的边界和底线永远都是不变的。 对待陌生人的时候&#xff0c;我们总会按照既定的章法和礼节行事&#xff0c;可是在对待熟人的时候&#xff0c;很多人却忘了这些章法和礼节。虽然彼此熟悉了&#xff0c;不需要那么在乎章…

狗都能看懂的Imitation Learning的讲解

上一篇博客讲述了奖励稀疏时的训练方法。实际场景中&#xff0c;可能难度还会更大一些。很多场景很难有一个明确的reward&#xff0c;甚至没有reward。那么这里就提出模仿学习&#xff0c;即agent模仿expert的操作。具体两个方法是&#xff1a;Behavior Cloning、Inverse Reinf…

从0到100:旅拍小程序开发笔记(上)

背景调研 旅拍店或者摄影师可以在小程序上设置自己的可预约时间&#xff0c;价格&#xff0c;拍摄介绍&#xff0c;并定义不同的套餐(服装套数&#xff0c;底片张数&#xff0c;精修数量&#xff0c;取景风格&#xff0c;套餐价格等)&#xff0c;顾客可以根据套餐内容和日程安…

定制化Windows系统

定制化Windows系统 1、定制化需求介绍 预定义安装常用软件的原版操作系统&#xff0c;节省花费的时间。定制前提&#xff0c;你需要1块硬盘、1台&#xff08;2台&#xff09;测试电脑、一个PE盘&#xff08;wepe最好&#xff09;&#xff0c;原版系统镜像&#xff0c;虚拟光驱…

鸿蒙应用框架开发【选择并查看文档与媒体文件】 本地数据与文件

选择并查看文档与媒体文件 介绍 应用使用ohos.file.picker、ohos.file.fs等接口&#xff0c;实现了picker拉起文档编辑保存、拉起系统相册图片查看、拉起视频并播放的功能。 效果预览 使用说明&#xff1a; 在首页&#xff0c;应用显示查看最近打开文件功能的跳转按钮&…

GD32手把手教你移植FlashDB(片外Flash) -- 3.FlashDB使用

GD32手把手教你移植FlashDB(片外Flash) – 1.FlashDB-sfud移植 GD32手把手教你移植FlashDB(片外Flash) – 2.FlashDB移植 GD32手把手教你移植FlashDB(片外Flash) – 3.FlashDB使用 示例代码: https://gitee.com/ljmRD/GD32F427_FlashDB 3.FlashDB使用 main() /*************…

浅谈取样器之SSH Command

浅谈取样器之SSH Command JMeter的SSH Command取样器是一个强大的功能&#xff0c;允许用户在JMeter测试计划中执行远程SSH命令。这对于需要与Linux/Unix服务器交互以执行系统命令、脚本或者进行性能测试验证的场景尤为有用。通过这个取样器&#xff0c;您可以集成服务器端操作…

Linux中进程通信之信号

信号 信号通信&#xff0c;其实就是内核向用户空间进程发送信号&#xff0c;只有内核才能发信号&#xff0c;用户空间进程不能发送信号。 关于信号指令的查看&#xff1a;kill -l 例如我们之前使用的kill -9 pid用于杀死一个进程 使用一个死循环 成功发送kill -9指令&#x…

对于AI大模型发展态势的几点认识

本期内容从AI大模型产业的视角出发&#xff0c;全面审视该产业的发展现状&#xff0c;深入剖析其成长轨迹和未来趋势&#xff0c;旨在为人工智能产业的参与者提供一个全面的视角&#xff0c;更好地理解AI大模型产业的复杂性、动态性和潜力&#xff0c;以及如何在这个快速变化的…