I can understand this classpath ordering requirement for a command line application point of view, where the classpath variable is under control, but what in a JEE context where all jars are put in WEB-INF/lib and not ordering can be specified ?
Having a project to depend on classpath ordering is simply a nonsense for me. This sounds like a hack to bypass some architecture issues.
You have multiple log4j.properties in classpath ? Having multiple result for a resource lookup is a valid Java case (@see Classloader.getResources()) but IS NOT supported by log4j !
- Why do those jars have a log4j.properties if they are not runnable artifacts ?
- Why not setup log4j programmatically or using -Dlog4j.configuration ?
for testing purpose, the taget/classes and taget/test-classes are set prior to dependencies in classpath, like the WEB-INF/classes is on a JEE webapp.
You need to patch some 3d party jar ? Create a new project, use the dependency plugin to unpack it, add your custom patched classes and package your own modified artifact !