This project is used only as a container where Jacoco code coverage will be generated.

We need a single jacoco.exec because Sonarqube provided by Eclipse is quite old and having a single jacoco.exec makes configuration easy.