Build Command
mvn clean install
Execute this command in the root of your custom assembly or Che repo. To make your build faster, you may use the following arguments:
-Dskip-enforce -DskipTests -Dskip-validate-sources -Dfindbugs.skip -DskipIntegrationTests=true -Dmdep.analyze.skip=true
If you prepare a PR to upstream Che, make sure build is a success with just mvn clean install with all the tests and enforcers. If you have enough CPU, you may also add -Dgwt.compiler.localWorkers=4 so that 4 CPU cores will be used during GWT compilation.
Pre-Reqs
-
JDK 1.8.0_130+
-
Maven 3.3.5+
-
Go 1.8+
By default, Che is built with docker profile, which means Dashboard is built in a Docker container. You may use a different profile though - mvn clean install -Pnative - in that case the following Node.JS version needs to be available:
-
Node.JS 5.4+
If your custom assembly does not bring any changes to Dashboard, Golang agents and bootstrapper, you just need JDK 1.8.0_130+ installed.
At least 2 CPUs and 8GB RAM (recommended) is required.
Build in Docker
You can use a dev Docker image:
docker run -ti -v ~/.m2:/home/user/.m2 -v /path/to/che/assembly:/che eclipse/che-dev:nightly sh -c "mvn clean install"
We recommend mounting Maven repo (-v ~/.m2:/home/user/.m2) to persist dependencies and make subsequent builds faster.
Build in Che
Enforcers
There are a few Maven enforcers brought by a parent pom.
License
All source file should have expected license. If your build fails because of a missing license, you may run mvn license:format
Dependency Convergence
Your custom dependencies need to be declared to follow dependency convergence rules in Che (i.e. all dependencies have to be declared either in Che maven-depmgt-pom or in a root pom of an assembly).
Formatting
See: Code Style