- Required tools
- Source code
- 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
This section contains installation instructions for build tools.
ThingsBoard is build using Java 11. You can use following instructions to install Java 11.
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.
You can clone source code of the project from the official github repo.
1 2 3 git clone [email protected]:thingsboard/thingsboard.git # checkout latest release branch git checkout release-3.4
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
You can find debian, rpm and windows packages in the target folder:
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
rm -rf ~/.m2/repository
- clean gradle cache
rm -rf ~/.gradle/caches/
- clean node modules
rm -rf ui-ngx/node_modules
- build in parallel, format headers, build docker images
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