第一部分:JDK

1,下载JDK,

JDK地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

本机是Win10 64,选择最下面一个

2,安装JDK,安装JDK选择默认的文件夹即可,如果需要安装在其他文件夹,请记得使用一个英文路径

3,配置环境变量

增加JAVA_HOME,即JDK的安装地址:C:\Program Files\Java\jdk1.8.0_221

增加 CLASSPATH,即JDK的安装地址中的文件:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

修改Path,增加JDK的地址:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

测试JDK安装成果,使用命令行工具

输入命令 java -version,如果能出现以下的提示信息,即安装完成


第二部分:maven

1,下载maven,进入地址:http://maven.apache.org/download.cgi

2,下载到某个指定地址:例如d:/tb,并进行解压

32,配置环境变量

增加MAVEN_HOME,即maven的地址:D:\tb\apache-maven-3.6.1-bin请注意,如果直接解压,有可能会有两个apache-maven-3.6.1-bin

环境变量设置

MAVEN_OPTS,参数是 -Xms128m -Xmx1024m

修改Path,增加Maven的地址%MAVEN_HOME%\bin;

测试Maven安装,打开命令行工具。使用命令mvn -v,如果能出现以下提示,即安装成功

2019-09-05 18:52更新:为在Maven在下载application时不至于使用太多时间,建议在maven的文件夹中,找到settings.xml文件,使用Notepad++打开

参考文章地址《ThingsBoard源码分析 —— 调试环境搭建

文件原有内容

在mirrors节点中插入内容

<mirror>
      <!--This sends everything else to /public -->
      <id>nexus</id>
      <mirrorOf>*</mirrorOf>     
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>
    <mirror>
      <!--This is used to direct the public snapshots repo in the
          profile below over to a different nexus group -->
      <id>nexus-public-snapshots</id>
      <mirrorOf>public-snapshots</mirrorOf>
     <url>http://maven.aliyun.com/nexus/content/repositories/snapshots/</url>
    </mirror>

最终文件内容如下


第三部分:Nodejs安装

1,下载Nodejs安装包,Nodejs官网地址:https://nodejs.org/en/download/

2,安装完成后,使用命令查看Nodejs是否已经安装完成,能出现以下提示说明已经安装成功


第四部分:安装git

1,下载git安装包,git官网地址是:https://git-scm.com/download/win

2,安装完成后,使用命令行测试git


第五部分: 安装npm全局信赖

1,使用命令行,执行以下命令

#npm 环境读取环境变量包
npm install -g cross-env #webpack打包工具
npm install -g webpack

安装依赖


第六部分:克隆thingsboard源码

在d:/tb文件夹中,鼠标右键,选择Git Bash Here

输入git命令克隆源代码

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

等待一段时间最终下载成功


第七部分:切换git分支

1,查看项目源码的所有分支,下载源码后,需要进入到thingsboard文件夹

2,切换分支,我们查看分支时,发现最新发布的版本是2.4

输入命令,即可切换至2.4的分支

git checkout release-2.4

切换分支成功


第八部分:注释插件

打开项目源码中的文件,查看其中的检查插件,打开thingsboard根文件目录

使用notepad++打开pom.xml,查找 license-maven-plugin 内容

将整个插件的节点注销即可


第九部分:编译项目

使用IDEA导入Thingsboard项目,并在导入到项目后,使用菜单将Maven依赖重新引入

如果maven仓库没有本地application依赖项,则需要连网提取application依赖项,所以在执行编译前,最好能连接以外网,接下来就是漫长的等待(时间确实比较久)

使用命令开始编译项目,命令中,我们跳过了test模块,为了顺利编译,请使用管理员运行命令

mvn clean install -Dmaven.test.skip=true

经过长时间的等待,编译完成,如果遇到问题,请多试几次

遇到问题,可以使用命令清除,继续运行

mvn clear

如果遇到以下问题

[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 40.781 s
[INFO] Finished at: --05T17::+:
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.5:clean (default-clean) on project http: Failed to clean project: Failed to delete D:\tb\thingsboard\transport\http\target\tb-http-transport.rpm -> [Help ]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help ] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn <goals> -rf org.thingsboard.transport:http

错误截图

需要重新编译,则需要运行命令

taskkill /f /im java.exe

最终成功编译

进入到项目的application\target文件夹中,查看已经编译好的项目

琉璃大神文章地址《thingsboard从搭建环境到安装部署,给安装出错,或者安装失败的小伙伴现场写一遍(修正版)

Thingsboard开发环境搭建及编译项目的更多相关文章

  1. Angular入门到精通系列教程(4)- 开发环境搭建以及入手项目

    1. 本地开发环境搭建 1.1. node.js 1.2. Angular CLI 2. 开发工具 - Visual Studio Code 第一个Anuglar项目 创建第一个anuglar项目 A ...

  2. angular开发环境搭建及新建项目

    最近一个星期准备学习一下angular前端框架,因为之前在学习abp框架的时候,都要求前端要掌握angular,所以不得不回来恶补一下了,学习的过程有时间的话会记录在这里,方便以后复习. 闲言少叙,下 ...

  3. 最新 obs-studio vs2019 开发环境搭建 代码编译

    距离上一篇文章很久了,重新开始记录 OBS 开发相关情况,第一步就是环境搭建,第二步是构建 OBS-Studio VS 2019 开发环境搭建 下载软件和资源 软件安装没有特别说明的,下载安装即可. ...

  4. Linux-QT 开发环境搭建以及编译镜像

    搭建Linux-QT 开发环境,需要先搭建Android 的编译环境,然后在Android 编译环境的基础上,再搭建Linux-QT 编译环境. 第一:编译器. 第二:设置环境变量.环境变量设置后,编 ...

  5. 001 开发环境搭建、安卓项目结构、R文件位置、asset目录创建

    1.安卓开发平台搭建 (1)下载SDK基础工具包(自己的百度云中) (2)将下载的安装包(android-sdk_r24.4.1-windows.zip)解压后,放到以下路径 C:\SoftAppli ...

  6. IMX6开发板Qtopia2.2.0开发环境搭建以及编译镜像

    搭建 Qtopia2.2.0 开发环境,需要先搭建 Android 的编译环境,然后在 Android 编译环境的基础上,再搭建 Qtopia2.2.0 编译环境.以下内容基于迅为-iMX6开发板.Q ...

  7. ionic —— 开发环境搭建并编译运行第一个APP

    其实类似的环境已经玩了很多次了,最开始玩还是微信刚刚出来,那会儿没有智能机.只好安装一个模拟器,却只是为了注册一个微信.想想也就是够了~ 前前后后折腾了很多次,可是每一次都给人不一样的感觉,也许是这个 ...

  8. Android 开发环境搭建以及编译

    两种搭建编译环境的方式,一种方法是用户安装虚拟机,然后安装基础的Ubuntu12.04.2 系统,利用提供的工具和详细的使用步骤,搭建编译环境:另外一种方法是用户安装虚拟机,然后直接加载 “搭建好的U ...

  9. 基于vlc sdk的二次开发--环境搭建、编译

    前言 关于 搭建.编译VLC,不同的平台有不同的方法,可以参考wiki. 其中在windows下编译VLC有两种方式,MSYS+MinGW和CygWin.通过测试,最后决定采用MSYS+MinGW搭建 ...

随机推荐

  1. 如何导出ane所需的swc

    来源:http://blog.sina.com.cn/s/blog_6471e1bb01012ard.html 打包.ane文件的时候需要用到ActionScript的扩展库(swc文件),那么如何生 ...

  2. static关键字的作用(修饰类、方法、变量、静态块)

    1. static修饰的类只能为内部类,普通类无法用static关键字修饰.static修饰的内部类相当于一个普通的类,访问方式为(new 外部类名.内部类的方法() ).如下所示: public c ...

  3. 更改jupyter-notebook启动时的默认目录

    1.找到jupyter_notebook_config.py: 默认Windows: C:\Users\USERNAME\.jupyter\jupyter_notebook_config.py 2.找 ...

  4. Django中多对多关系的orm表设计

    作者的管理 1.设计表结构 出版社 书籍 作者 一个出版社出版多个书籍  1对多 书籍和作者的关系:一个作者写多本书,一本书可以是多个作者写.多对多 1)创建一张表,表中多对多的数据关系.使用 多对多 ...

  5. css详解4

    1.固定定位 固定定位,页面内容多,页面滚动起来,才能看到固定定位效果. 比如下面这个,随之滚动条滚动它一直在右边.比如固定导航栏,小广告,回到顶部,应用在这些地方.一直固定位置不变的. 首先让页面能 ...

  6. 复习巩固:oracle如何实现去重和分页

    一:oracle实现去重: user数据表: 分两步:1.查询重复数据  2.删除重复数据 1.查询重复数据:在oracle中实现查询重复数据,可以借助于rowid这个伪列.oracle中每个表物理上 ...

  7. Java 使用Builder解决构造函数参数过多的问题

    原文:https://blog.csdn.net/michael_f2008/article/details/77715075 //Builder Pattern public class Nutri ...

  8. WebLogic反序列化漏洞(CVE-2019-2725补丁绕过)

    影响产品: Oracle WebLogic Server10.3.6.0.0 Oracle WebLogic Server12.1.3.0.0 影响组件: wls9_async_response.wa ...

  9. abp学习(二)

    翻译下首页截图的标签: DDD Base Classes 介绍: 应用程序代码库的分层是一种被广泛接受的技术,可帮助降低复杂性并提高代码重用性.为了实现分层架构,ASP.NET样板遵循域驱动设计的原则 ...

  10. Java精通并发-wait与notify方法案例剖析与详解

    在上一节中对Object的wait.notify.notifyAll方法进行了总结,这次举一个具体案例来进行巩固,题目如下: 编写一个多线程程序,实现这样的一个目标: 1.存在一个对象,该对象有一个i ...