My project includes a jar file because it is listed as a transitive dependency.
However, I have verified not only that I don't need it but it causes problems because a class inside the jar files shadows a class I need in another jar file.
How do I leave out a single jar file from my transitive dependencies?
You can do this by explicitly excluding the problematic artifact. Take the dependency that includes the problem and mark it to be excluded:
From the maven website:
You can exclude a dependency in the following manner:
The correct way is to use the exclusions mechanism, however sometimes you may prefer to use the following hack instead to avoid adding a large number of exclusions when lots of artifacts have the same transitive dependency which you wish to ignore. Rather than specifying an exclusion, you define an additional dependency with a scope of "provided". This tells Maven that you will manually take care of providing this artifact at runtime and so it will not be packaged. For instance:
Side effect: you must specify a version of the artifact-to-be-ignored, and its POM will be retrieved at build-time; this is not the case with regular exclusions. This might be a problem for you if you run your private Maven repository behind a firewall.