ThingsBoard源码结构二

上一章我们简单了解了ThingsBoard源码有哪些模块,本章探寻一下模块间的关系

application

作为应用程序模块,自然是引用了其他所有的模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>actor</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>util</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.rule-engine</groupId>
		<artifactId>rule-engine-api</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>cluster-api</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.rule-engine</groupId>
		<artifactId>rule-engine-components</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common.transport</groupId>
		<artifactId>transport-api</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common.transport</groupId>
		<artifactId>mqtt</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common.transport</groupId>
		<artifactId>http</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common.transport</groupId>
		<artifactId>coap</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common.transport</groupId>
		<artifactId>lwm2m</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common.transport</groupId>
		<artifactId>snmp</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard</groupId>
		<artifactId>dao</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>queue</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>stats</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>edge-api</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard</groupId>
		<artifactId>ui-ngx</artifactId>
		<version>${project.version}</version>
		<scope>runtime</scope>
	</dependency>
	...
</dependencies>

common

actor

引用了工具模块和消息模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>util</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>message</artifactId>
	</dependency>
	...
</dependencies>

cache

引用了数据模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>data</artifactId>
	</dependency>
	...
</dependencies>

cluster-api

引用了数据模块、消息模块和统计定义模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>data</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>message</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>stats</artifactId>
	</dependency>
	...
</dependencies>

coap-server

引用了队列模块、数据模块和传输接口模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>queue</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>data</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common.transport</groupId>
		<artifactId>transport-api</artifactId>
	</dependency>
	...
</dependencies>

dao-api

引用了数据模块、集群接口模块和消息模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>data</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>cluster-api</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>message</artifactId>
	</dependency>
	...
</dependencies>

data

未引用其他模块

edge-api

引用了数据模块、队列模块和消息模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>data</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>queue</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>message</artifactId>
	</dependency>
	...
</dependencies>

message

引用了数据模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>data</artifactId>
	</dependency>
	...
</dependencies>

queue

引用了数据模块、工具模块、统计模块和集群接口模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>data</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>util</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>stats</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>cluster-api</artifactId>
	</dependency>
	...
</dependencies>

stats

未引用其他模块

queue

引用了数据模块、工具模块、统计模块和集群接口模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>data</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>util</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>stats</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>cluster-api</artifactId>
	</dependency>
	...
</dependencies>

util

引用了数据模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>data</artifactId>
	</dependency>
	...
</dependencies>

transport

coap

引用了传输接口模块和CoAP服务模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard.common.transport</groupId>
		<artifactId>transport-api</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>coap-server</artifactId>
	</dependency>
	...
</dependencies>
http

引用了传输接口模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard.common.transport</groupId>
		<artifactId>transport-api</artifactId>
	</dependency>
	...
</dependencies>
lwm2m

引用了传输接口模块和数据模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard.common.transport</groupId>
		<artifactId>transport-api</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>data</artifactId>
	</dependency>
	...
</dependencies>
mqtt

引用了传输接口模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard.common.transport</groupId>
		<artifactId>transport-api</artifactId>
	</dependency>
	...
</dependencies>
snmp

引用了传输接口模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard.common.transport</groupId>
		<artifactId>transport-api</artifactId>
	</dependency>
	...
</dependencies>
transport-api

引用了队列模块、统计模块、数据模块、消息模块、缓存模块和工具模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>queue</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>stats</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>data</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>message</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>cache</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>util</artifactId>
	</dependency>
	...
</dependencies>

dao

引用了数据模块、缓存模块、消息模块、统计模块、数据库接口模块和工具模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>data</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>cache</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>message</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>stats</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>dao-api</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>util</artifactId>
	</dependency>
	...
</dependencies>

msa

black-box-tests

引用了MQTT模块、工具模块、REST客户端模块和若干微服务模块(JavaScript执行器模块、WEB界面模块、节点模块和不同的协议模块)

<dependencies>
	<dependency>
		<groupId>org.thingsboard</groupId>
		<artifactId>netty-mqtt</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard</groupId>
		<artifactId>tools</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard</groupId>
		<artifactId>rest-client</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.msa</groupId>
		<artifactId>js-executor</artifactId>
		<type>docker-info</type>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.msa</groupId>
		<artifactId>web-ui</artifactId>
		<type>docker-info</type>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.msa</groupId>
		<artifactId>tb-node</artifactId>
		<type>docker-info</type>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.msa</groupId>
		<artifactId>coap</artifactId>
		<type>docker-info</type>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.msa</groupId>
		<artifactId>http</artifactId>
		<type>docker-info</type>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.msa</groupId>
		<artifactId>mqtt</artifactId>
		<type>docker-info</type>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.msa</groupId>
		<artifactId>lwm2m</artifactId>
		<type>docker-info</type>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.msa</groupId>
		<artifactId>snmp</artifactId>
		<type>docker-info</type>
	</dependency>
	...
</dependencies>

js-executor

未引用其他模块

tb

作为完整的应用模块,直接引用了应用模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard</groupId>
		<artifactId>application</artifactId>
		<version>${project.version}</version>
		<classifier>deb</classifier>
		<type>deb</type>
		<scope>provided</scope>
	</dependency>
</dependencies>

tb-node

作为节点模块,直接引用了应用模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard</groupId>
		<artifactId>application</artifactId>
		<version>${project.version}</version>
		<classifier>deb</classifier>
		<type>deb</type>
		<scope>provided</scope>
	</dependency>
</dependencies>

transport

coap

引用了CoAP模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard.transport</groupId>
		<artifactId>coap</artifactId>
		<version>${project.version}</version>
		<classifier>deb</classifier>
		<type>deb</type>
		<scope>provided</scope>
	</dependency>
</dependencies>
http

引用了HTTP模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard.transport</groupId>
		<artifactId>http</artifactId>
		<version>${project.version}</version>
		<classifier>deb</classifier>
		<type>deb</type>
		<scope>provided</scope>
	</dependency>
</dependencies>
lwm2m

引用了LwM2M模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard.transport</groupId>
		<artifactId>lwm2m</artifactId>
		<version>${project.version}</version>
		<classifier>deb</classifier>
		<type>deb</type>
		<scope>provided</scope>
	</dependency>
</dependencies>
mqtt

引用了MQTT模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard.transport</groupId>
		<artifactId>mqtt</artifactId>
		<version>${project.version}</version>
		<classifier>deb</classifier>
		<type>deb</type>
		<scope>provided</scope>
	</dependency>
</dependencies>
snmp

引用了SNMP模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard.transport</groupId>
		<artifactId>snmp</artifactId>
		<version>${project.version}</version>
		<classifier>deb</classifier>
		<type>deb</type>
		<scope>provided</scope>
	</dependency>
</dependencies>

web-ui

引用了界面模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard</groupId>
		<artifactId>ui-ngx</artifactId>
		<version>${project.version}</version>
		<type>jar</type>
		<scope>provided</scope>
	</dependency>
	...
</dependencies>

netty-mqtt

未引用其他模块

rest-client

引用了数据模块和工具模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>data</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>util</artifactId>
	</dependency>
	...
</dependencies>

rule-engine

rule-engine-api

引用了消息模块、数据库接口模块、集群相关接口模块和工具模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>message</artifactId>
		<scope>provided</scope>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>dao-api</artifactId>
		<scope>provided</scope>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>cluster-api</artifactId>
		<scope>provided</scope>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>util</artifactId>
		<scope>provided</scope>
	</dependency>
	...
</dependencies>

rule-engine-components

引用了工具模块、数据库模块、传输接口模块、规则引擎接口和MQTT模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>util</artifactId>
		<scope>provided</scope>
	</dependency>
	<dependency>
		<groupId>org.thingsboard</groupId>
		<artifactId>dao</artifactId>
		<scope>provided</scope>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common.transport</groupId>
		<artifactId>transport-api</artifactId>
		<scope>provided</scope>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.rule-engine</groupId>
		<artifactId>rule-engine-api</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard</groupId>
		<artifactId>netty-mqtt</artifactId>
	</dependency>
	...
</dependencies>

tools

引用了数据模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>data</artifactId>
	</dependency>
	...
</dependencies>

transport

coap

引用了CoAP模块和队列模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard.common.transport</groupId>
		<artifactId>coap</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>queue</artifactId>
	</dependency>
	...
</dependencies>

http

引用了HTTP模块和队列模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard.common.transport</groupId>
		<artifactId>http</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>queue</artifactId>
	</dependency>
	...
</dependencies>

lwm2m

引用了LwM2M模块、队列模块和缓存模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard.common.transport</groupId>
		<artifactId>lwm2m</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>queue</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>cache</artifactId>
	</dependency>
	...
</dependencies>

mqtt

引用了MQTT模块和队列模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard.common.transport</groupId>
		<artifactId>mqtt</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>queue</artifactId>
	</dependency>
	...
</dependencies>

snmp

引用了SNMP模块和队列模块

<dependencies>
	<dependency>
		<groupId>org.thingsboard.common.transport</groupId>
		<artifactId>snmp</artifactId>
	</dependency>
	<dependency>
		<groupId>org.thingsboard.common</groupId>
		<artifactId>queue</artifactId>
	</dependency>
	...
</dependencies>

ui-ngx

未引用其他模块

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值