added a comment - - edited
With Cobertura, you could run "mvn clean sonar:sonar" and everything was handled correctly as the Sonar Cobertura plugin was internally launching the Maven Cobertura plugin that was forcing the compilation of sources and tests before executing the tests.
Now, with JaCoCo as the default engine, you must make sure that the sources and tests are compiled before invoking "sonar:sonar", otherwise there won't be any test nor coverage results. This means that "mvn clean sonar:sonar" won't work any longer if you want to have test/coverage metrics: you will have to run "mvn clean verify/install" and then "mvn sonar:sonar" as this has always been advised on the documentation.
Note that if your tests may fail, you will also have to add "-Dmaven.test.failure.ignore=true" otherwise the "verify/install sonar:sonar" won't be reached as the "test" phase will fail the build.