Skip to content

Latest commit

 

History

History
99 lines (66 loc) · 3.01 KB

BUILD.md

File metadata and controls

99 lines (66 loc) · 3.01 KB

Building Eclair

Requirements

Build

Eclair is packaged as a compressed archive with a launcher script. The archives are built deterministically so it's possible to reproduce the build and verify its equality byte-by-byte. To build the exact same artifacts that we release, you must use the build environment (OS, JDK...) that we specify in our release notes.

To build the project and run the tests, simply run:

./mvnw package

Notes:

  • This command will build all modules (core, node, gui).
  • If the build fails, you may need to clean previously built artifacts with the ./mvnw clean command.
  • Archives can be found in the target folder for each module.

Skip tests

Running tests takes time. If you want to skip them, use -DskipTests:

./mvnw package -DskipTests

Run tests

To only run the tests, run:

./mvnw test

To run tests for a specific class, run:

./mvnw test -Dsuites=*<TestClassName>

To run tests using a specific number of threads, run:

./mvnw -T <thread_count> test

To run tests with a specific version of bitcoind, run:

BITCOIND_DIR=<absolute/path/to/directory> ./mvnw test

Build specific module

To only build the eclair-node module, run:

./mvnw package -pl eclair-node -am -Dmaven.test.skip=true

To install eclair-core into your local maven repository and use it in another project, run:

./mvnw clean install -pl eclair-core -am -Dmaven.test.skip=true

Build the API documentation

Slate

The API doc is generated via slate and hosted on github pages. To make a change and update the doc follow the steps:

  1. git checkout slate-doc
  2. Install your local dependencies for slate, more info here
  3. Edit source/index.html.md and save your changes.
  4. Commit all the changes to git, before deploying the repo should be clean.
  5. Push your commit to remote.
  6. Run ./deploy.sh
  7. Wait a few minutes and the doc should be updated at https://acinq.github.io/eclair

Updating Eclair dependencies checksums

Eclair dependencies (including maven plugins and their dependencies) are verified against a list of trusted checksums (located in .mvn/checksums/checksums-central.sha256). Please note that dependencies are verified only if they are actually used in the build phase that is running, so you may be able to modify the checksum of a dependency and still run a successful build phase that does not use them (for example you can modify the checksum of a maven-deploy-plugin dependency and still run ./mvnw test successfully). To make local development and testing easier, SNAPSHOT dependencies are not verified.

To re-create the trusted checksums file, run:

$ rm ~/.m2/wrapper ~/.sbt -rf
$ ./mvnw clean install scoverage:report -DskipTests -Daether.artifactResolver.postProcessor.trustedChecksums.record