ThingsBoard 是一个基于 Java 的开源物联网平台,用于数据收集、处理、可视化和设备管理。 它使用 IoT 行业标准合约(MQTT、CoAP 和 HTTP)连接设备,并支持云和本地部署。 因为手头有一个项目就是利用这款开源产品作为物联网数据采集传输生成平台来替代之前公司自己开发的数据采集传输软件(不稳定)。 从近两年项目的实际使用体验来看,ThingsBoard是一款优秀的产品。 其高连接性、可靠性、稳定性、扩展性、扩展性等指标可以秒杀我们公司自主研发的基于C++的那个系统。
近日android 反编译 源码,ThingsBoard相关项目已部署在某国企云平台上。 云平台的安全机制实时检测软件漏洞,发现漏洞则责令整改,否则将封禁服务器。 ThingsBoard源码中引用了300多个第三方jar包,且组件经常存在漏洞,等官方升级就来不及了。 你只能依靠自己的源码来编译、打包和发布。 源码编译过程中遇到了很多坑,总结记录一下遇到的问题,供大家参考。
1.Maven配置问题
由于ThingsBoard在编译过程中需要依赖很多美国包,因此需要能够连接内网,建议连接内网。 如果公司设置中有代理服务器,请不要忘记在setting.xml中配置代理访问。
一般情况下,使用官方镜像更新依赖包,网速不稳定。 可以将Maven镜像源设置为天猫,在maven安装包目录下找到settings.xml设置,如下:
alimaven
aliyun maven
central
http://maven.aliyun.com/nexus/content/groups/public/
建议同时将npm设置为天猫镜像。
同上android 反编译 源码,如果网速不好,npm进程也会下载失败。 这就是很多人编译失败的原因,所以我们在编译前也将npm替换为天猫镜像:
npm install -g mirror-config-china --registry=http://registry.npm.taobao.org #使用淘宝镜像
npm config get registry #查询当前镜像
npm config rm registry #删除自定义镜像,使用官方镜像
npm info express
编译时,取消系统代理服务器设置或IE代理服务器设置中的代理设置,往往会导致ThingsBoard Server UI模块编译失败。
2.缓存,或者进程没有关闭,或者文件被占用,导致编译错误
每次编译失败并进行第二次编译时,应清除缓存并杀死遗留进程
执行以下命令杀死遗留进程
taskkill /f /im java.exe
或者IDEA Maven工具进行清理。
在项目编译过程中,需要复制文件。 如果节点进程或者其他进程没有关闭,也会报各种类型的错误信息。 进入报错的模块,单独编译,添加参数-X或-e查询错误的具体信息,根据错误提示进行处理。
mvn clean install -DskipTests=true -X 或-e
最简单的形式就是重启笔记本,建议重启。
3.软件版本问题,这是最常见的问题
Java版本和JDK版本必须为11或以上版本。 我使用的版本是11.0.18。 我一开始使用的JDK11_4335520版本编译时发现各种错误。
然后是Node版本,我用的是v16.15.1,npm版本号,8.5.0
最后一个纱线版本是 v1.22.9。
Node和Yarn的版本要与模块pom文件中设置的版本一致。
install node and yarn
install-node-and-yarn
v16.15.1
v1.22.17
yarn install
yarn
install
yarn pkg
yarn
compile
run pkg
注意:
编译项目与网速、笔记本配置有关。 最好连接内网进行编译。 我这边编译完成大概需要20分钟。
总结
我在编译Thingsboard 3.3.4的过程中遇到了各种问题。 编译过程非常缓慢。 花了将近一整天的时间,编译了50多个模块。 这里总结一下,希望能帮助到更多的同学。
NVIDIA® (NVIDIA™) 发布编译器源代码,开放 CUDA 平台
这使得研究人员和软件工具开发人员能够为流行的并行编程模型添加新的语言和框架支持
基于 LLVM 的全新 NVIDIA® CUDA® 编译器
2011 年 12 月 14 日——中国上海——欧洲 GPU 技术大会——NVIDIA®(NVIDIA™)明天宣布,该公司将为学术研究人员和软件工具开发人员提供新的 NVIDIA® CUDA® LLVM 编译器代码的源代码,以便他们能够更多轻松添加对更多编程语言的 GPU 支持,并支持替代处理器架构上的 CUDA 应用程序。
LLVM是一种广泛使用的开源编译器基础设施,采用模块化设计,使其能够轻松支持新的编程语言和处理器架构。 许多领先公司都使用 LLVM 来满足各种编程需求,此类公司包括 Adobe、Apple、Cray 和 Electronic Arts。
基于LLVM的全新CUDA编译器在架构方面改进了对NVIDIA®(NVIDIA™)并行GPU的支持。 现已推出的最新版本 CUDAToolkit (v4.1) 包含此编译器。
Ocelot项目的内容是将CUDAC语言编写的软件移植到不同的处理器架构上。 德克萨斯理工大学院长、Ocelot 项目总监 Sudhakar Yalamanchili 表示:“开放 CUDA 平台是 NVIDIA®(NVIDIA™)迈出的重要一步。异构是未来计算的大趋势,CUDA 编程模型可以提供对于开发人员来说,这是一种非常有效的方法,可以最大限度地提高许多不同类型处理器(包括 AMD GPU 和 Intel x86 CPU)的性能。”
开发人员需要针对特定领域的问题和未来的编程模型对异构并行系统进行编程,使这些编程替代方案能够帮助加速实现百亿亿级计算。 通过发布 CUDA 编译器和内部表示(IR)格式的源代码手机源码编译,NVIDIA®(英伟达™)将允许研究人员更灵活地将 CUDA 编程模型移植到其他架构手机源码编译,从而实现下一代更高性能计算平台的开发。
软件工具开发人员还可以利用编译器源代码技术来构建自定义解决方案。
Portland Group 负责人 Doug Miles 表示:“这一积极举措使得 PGI 能够开发原生 CUDA Fortran 和 OpenACC 编译器。该编译器可以利用与 NVIDIA® CUDA® C/C++ 相同的设备级优化技术。这一举措将这使得开发人员能够使用现有工具进行无缝调试和分析,并让 PGI 能够专注于更高级别的优化和语言功能。”
合格的学术研究人员和软件工具开发人员可以通过在 //developer.nvidia.com/cuda-source 注册来尽早访问 CUDA 编译器源代码。
要了解有关 NVIDIA® CUDA® 编程环境的更多信息,请访问 NVIDIA® CUDA® 网站。
关于 NVIDIA® 公司
1999年,该公司(纳斯达克股票代码:NVDA)发明了GPU(GPU),让全世界重新发现了计算机图形学的力量。 时至今日,NVIDIA®(英伟达™)已广泛应用于多种产品中。 ,并且全部采用NVIDIA®(NVIDIA™)。 使用 GPU 享受令人惊叹的、身临其境的游戏世界。 专业人士依靠 GPU 构建和创造电影中的视觉效果,并设计从高尔夫球杆到小型喷气式飞机的解决方案。 研究人员利用 GPU 来推动科学技术的发展。 NVIDIA® (NVIDIA™) Corporation 拥有 5,000 多项已颁发、授予或申请的专利,其中涵盖了许多现代计算的基础理念。 欲了解更多信息,请访问。
媒体垂询,请联系:
史蒂文·金
NVIDIA® (NVIDIA™) 中国公关总监
电话:(8610)-58661502
邮箱:jiyang@nvidia.com
轩雅国际公关
广州市朝阳区建国路92号世茂大厦B座14楼 邮编:100022
联系人:陈忠宇、杨冲
电话:(8610)85079258/9209
传真:010-85079555
邮箱:gary.chen@shunyagroup.com
eve.yang@shunyagroup.com
###
© NVIDIA 公司版权所有 2016。 版权所有。 所有公司和/或产品名称可能是其各自所有者的商标和/或注册商标。 功能、价格、可用性和规格如有变更,恕不另行通知。
编者注:如果您想了解有关 NVIDIA 的更多信息,请访问 NVIDIA 新闻编辑室: