thingsboard Mac m1 编译踩坑记录

首先是环境配置:

java -version
openjdk version "11.0.14" 2022-01-18 LTS
OpenJDK Runtime Environment Zulu11.54+23-CA (build 11.0.14+9-LTS)
OpenJDK 64-Bit Server VM Zulu11.54+23-CA (build 11.0.14+9-LTS, mixed mode)

没有java 11的话,这里下载安装:
https://www.azul.com/downloads/?version=java-11-lts&os=macos&package=jdk

image.png

thingsboard需要接入postgres数据库,数据库的默认配置在这里:

image.png

·


image.png

其默认的postgres配置:
数据库url:localhost:5432/thingsboard
用户名:postgres
密码:postgres

因此需要配置一个postgres的数据库服务:
1、拉取镜像文件

docker pull postgres

2、容器后台进程运行,向外暴露5432端口

  docker run --name mypostgres -e POSTGRES_PASSWORD=postgres -d -p 5432:5432 postgres

运行成功后默认数据库登录名、密码皆为postgres,同默认配置一致了。

接着装一个postgres的管理工具pgadmin4:

docker pull dpage/pgadmin4
docker run --name pgadmin -p 1443:80 -e "[email protected]" -e "PGADMIN_DEFAULT_PASSWORD=root" -d dpage/pgadmin4

启动成功后,访问pgadmin4管理页面,登陆名和密码为pgadmin docker启动时配置的[email protected] 和 root.

登陆后创建服务器
首先查下postgres在docker内网的地址:

docker inspect mypostgres
"Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "3199ea6670a3658cd928860f3e48e1601fbc786b53b53e2aa362e410fb70c393",
                    "EndpointID": "dc374db699374951cdc2b542058f0efe4997f55add5f75326127922e0eccc596",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.2",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:02",
                    "DriverOpts": null
                }
            }

然后添加数据库链接到pgadmin4


image.png

链接成功后,创建thingsboard对应的数据库,名称为thingsboard.


image.png

接下来clone代码:

git clone https://github.com/thingsboard/thingsboard.git

然后切换到最新的release分支:


image.png

针对mac编译报错做如下fix:

image.png

image.png

其中ui-ngx编译date-fns会报错,cd到ui-ngx目录下:

n stable
node -v
v16.14.0
rm -rf node_modules/
yarn -v
1.22.17
yarn install
yarn add date-fns
yarn build

编译成功后,就可以回到主目录,编译整个项目:

mvn clean install -DskipTests -X 

编译完成后,thingsboard/application/target下就有了编译后的文件了:

ls
archive-tmp         generated-sources       thingsboard-3.3.3.jar
bin             generated-test-sources      thingsboard-windows.zip
classes             maven-archiver          thingsboard.changes
conf                maven-status            thingsboard.deb
control             protoc-3.17.2-osx-x86_64.exe    thingsboard.rpm
data                test-classes            tmp
debian              thingsboard-3.3.3-boot.jar  windows

执行如下命令就可以运行单体应用

java -jar thingsboard-3.3.3-boot.jar

不过执行之前,还要初始化数据库,切换到target的bin的install目录下:

chmod +x install_dev_db.sh
./install_dev_db.sh

执行完后会在数据库中初始化测试数据,如果是生产环境的话则将 install_dev_db.sh 换成 install.sh

运行
application/src/main/java/org/thingsboard/server/ThingsboardServerApplication.java
即可启动 Thingsboard 服务

或者直接运行打包出来的 thingsboard-3.2.2-boot.jar :

java -jar thingsboard-3.2.2-boot.jar

启动后访问:http://127.0.0.1:8080

测试账号:

平台管理员:[email protected] sysadmin
租户管理员:[email protected] tenant
普通用户:[email protected] customer

你可能感兴趣的:(thingsboard Mac m1 编译踩坑记录)