On Darwin (Mac OS X), alter the mvn.sh script such that JAVA_VERSION is not consulted at all if JAVA_HOME is specified.
For example, like so (not tested):
if [ -z "$JAVA_HOME" ] ; then
if [ -z "$JAVA_VERSION" ] ; then
echo "Using Java version: $JAVA_VERSION"
Additionally... you might want the Java code that handles mvn -v to output the Java version in effect, in addition to the Maven version.