Current State
Due to various pains regarding multi-release JARs (lack of support in Maven and Jacoco), and no well-defined way to run tests against different JDKs in Maven (i.e. toolchains per plugin execution) - the build is
dependent on JDK paths. And while the modules and tests run against Java 8, 9 and 10 - the build itself must be launched with Java 8.
Building
This project uses maven-toolchains-plugin, so you’ll need to setup toolchains.
Examples for various OS/architectures can be found here
With toolchains configured, run mvn clean install.
When modifying the code beware/be-aware the build will fail if Maven POMs, license headers, Java source or Javascript source aren’t formatted according to conventions (Apache Maven’s standards for POMs, my own undocumented formatting for source). To auto-format the lot, simply run mvn -P '!strict,tidy'.
To run PiTest use mvn -P analyze clean install
To run against SonarQube use mvn -P analyze,report,sonar
SCA Metrics
Due to issues with Jacoco vs mutli-release JARs, coverage reports are currently only available via SonarCloud.
Roadmap
TODO