currently, the Surefire plugin uses resolveTransitively to obtain the Surefire provider (junit, junit4, junit47, testng). Each of these has a compile time dependency on the library itself to interact with their API.
This results in downloading older versions as well as the newer one requested by the project (TestNG 5.7, JUnit 4.0, JUnit 3.8.1). There are two possible solutions to this:
- alter the resolveTranstively method to exclude the artifact that is already available from the project
- set the dependency to 'provided' in the providers POM