目录
thingsboard 是一款优秀的物联网平台软件,具体介绍请登录 https://thingsboard.io/docs/getting-started-guides/what-is-thingsboard/ 查看, 赞美的话不多少,这里主要是编译代码,搭建debug 环境,这里的环境是指windows 环境、
一 源码的下载
thingsboard 还在活跃中,本文采用的代码是截止到2018.8.10 的代码, 用tortoiseGit clone 代码到本地目录即可
二 源码的编译
-
让 node 运行起来
代码clone 到本地后,在根目录下执行 mvn clean install 指令, 但很有可能会报错
<modules>
<module>netty-mqtt</module>
<module>common</module>
<module>rule-engine</module>
<module>dao</module>
<module>transport</module>
<module>ui</module>
<module>tools</module>
<module>application</module>
</modules>
从pom.xml 中可以看出,整个项目会编译哪些模块,我在实际编译过程中编译UI 时会报错。 但其实thingsboard 采用的前后端分离的架构,这里我们不一定要UI 编译成功 , 只需要node 能够正常运行就好,这里我么先执行npm install, 然后运行 node ./server.s ,让node 服务器先运行起来, node 正常运行会监听
node 正常运行后,依赖于后台的API 接口,接下来我们编译API
-
编译 API 组件
接下来我们改造下pom.xml , 将 UI 屏蔽掉
同时去掉 license 的检查 (将红圈的里代码删掉)
为了让API 组件快速编译,我们跳过 测试, 直接执行 mvn package -DskipTests, 编译完成后可以看到在application 的target 目录下看到以下生成的文件,这表明已经编译成功
-
安装cassandra 数据库
cassandra 安装请参考 https://thingsboard.io/docs/user-guide/install/windows/,安装完成后请用cqlsh.工具 导入 dao\src\main\resources\cassandra\schema.cql, dao\src\main\resources\cassandra\system-data.cql 这两个CQL 文件
-
用 idea 打开项目
上面是直接用命令行的方式编译thingsboard, 但我们调试过程中需要用到ide,以便调试
从idea 直接open thingsboard的根目录,打开完成后可以看到如下结构
这里我们采用cassandra 数据库,将application.yml 第58行 DATABASE_TYPE 改为cassandra
同时将内置的数据库删掉
然后运行程序
如果一切正常,我们可以看到如下信息
编译后运行验证
一切正常后,我们直接访问 http://localhost:8080/login, 然后输入用户名[email protected], 密码sysadmin 登录,如果正常则可看到如下界面,则表明我们已经编译成功