- Required tools
- Source code
- Build
- Build local docker images
- Build artifacts
- Running tests
- Tips and tricks
- Build and runtime errors
This guide will help you to download and build ThingsBoard from sources. Instructions listed below are tested on Ubuntu 20.04 LTS and CentOS 7/8
Required tools
This section contains installation instructions for build tools.
Java
ThingsBoard is build using Java 11. You can use following instructions to install Java 11.
Maven
ThingsBoard build requires Maven 3.1.0+.
Please note that maven installation may set Java 7 as a default JVM on certain Linux machines. Use java installation instructions to fix this.
Source code
You can clone source code of the project from the official github repo.
1
2
3
# checkout latest release branch
git clone -b release-3.8 [email protected]:thingsboard/thingsboard.git --depth 1
cd thingsboard
Build
Run the following command from the thingsboard folder to build the project:
1
mvn clean install -DskipTests
Build local docker images
Make sure that Docker is installed.
1
mvn clean install -DskipTests -Ddockerfile.skip=false
Build artifacts
You can find debian, rpm and windows packages in the target folder:
1
application/target
Running tests
We are using docker and docker-compose to run all kind of integration and black-box tests.
Please, manage Docker as a non-root user to run tests properly.
Master and release branches is already tested, so you can skip tests and avoid installing docker as well.
Run all unit and integration tests:
1
mvn clean install
To run black-box tests, please refer black-box tests readme.
Estimated time is about 1 hour on AMD Ryzen 5 3600 (6-cores), 32GB DDR4, fancy SSD and shiny weather. Actual time may vary and depends on particular hardware performance.
Tips and tricks
Thingsboard is quite easy to build from sources on a brand-new clear environment.
Here are some tips and tricks to boost build experience:
- clean maven cache
1
rm -rf ~/.m2/repository
- clean gradle cache
1
rm -rf ~/.gradle/caches/
- clean node modules
1
rm -rf ui-ngx/node_modules
- build in parallel, format headers, build docker images
1
mvn -T 0.8C license:format clean install -DskipTests -Ddockerfile.skip=false
Build and runtime errors
- If you see such errors when running locally-built Docker image, re-clone the repo with LF file ending and re-build the image. To fix this read Source code section.
1
Standard_init_linux.go:175 exec user process caused no such file