I've encounteret two places where a transitive maven dependency have prevented karaf in pax exam tests from loading karaf features.
The first problem was when I added mockrunner dependencies to be able to use MockHttpServletRequest and MockHttpServletRespons in a pax exam test:
I added the following dependencies to the pom.xml file of the pax exam project:
The purpose of the dependencies was to provide version numbers to the pax exam config, that's why the dependencies were provided:
In the karaf.log of the pax exam test, I could see karaf start, and then nothing happened, no error messages until the test timed out. No karaf features were loaded
By trial and error I figured out that one of the transitive dependencies of the dependencies I included was the culprit, and when I excluded the culprit, karaf started normally in pax exam, and all features were loaded:
The second problem I had was that the pax-jdbc features repository for pax-jdbc 1.3.0 had a transitive dependency to karaf 4.1.1 that gave karaf 4.1.7 in pax exam startup problems. I.e. it wasn't a dependecy in the feature file that gave the problem, but a transitive dependency of the feature file dependency.
The feature file dependency that caused karaf not to start properly in pax exam:
The feature file with exclusion of the troublesome transitive dependency (here karaf startet properly in pax exam)