We use multiple static checkers (findbugs, pmd etc.) with Jacoco in a pipeline. It is possible that one or more of the static checkers declare a build unstable or failed (because the thresholds for issues are crossed) even though the build itself and all tests pass.
If I add the "jacoco()" step after "findbugs()", then jacoco will skip the coverage report if findbugs declared the build unstable/failed. If I add it before, it will create the report just fine.
Most other post build actions such as PMD, Findbugs, Warnings etc. have a switch "Run Always". Jacoco should have the same switch.