running integration tests from all modules after all modules have been built and unit-tested
To meet this requirement a possible solution is to have an additional (optional) module providing integration tests, that is, all integration tests should be moved to this module, which could be added to the default build via a profile.
<profiles>
<profile>
<id>it</id>
<modules>
...
<module>it-module</module>
</modules>
</profile>
</profiles>
In order to have it as last step of the build for the Maven Reactor, this module should also depend on all other modules (probably it would implicitly already be the case).
This module would actually be the only one providing maven-failsafe-plugin
configuration and settings. Moreover, it might become more meaningful in case of the usage of an embedded server to test against (i.e. Jetty): the server will be created and shutted down only during the build of this module and not in each and every module requiring it, speeding up this integration phase.
Being the last module of the build, you will make sure that it would be reached only in case of no unit test failures on previous modules and only when the it
profile would be active (e.g. during CI builds).