This Maven project illustrates a problem: a dependency between Java source files results in a bad build when one file is changed but another file dependent on it is not changed and therefore not recompiled.
Example from the
$ mvn clean testresults in a passing test.
$ mvn testrecompiles
Main.javaand therefore the test continues to pass, even though it should fail.