What is the difference between M2_HOME and MAVEN_HOME
Solution 1:
MAVEN_HOME
is for Maven 1, M2_HOME
is for Maven 2 and later.
Maven 2 was a complete rewrite from Maven 1 and was not backwards compatible. Having the two different _HOME
variables means it is possible to run both on the same machine.
UPDATE
As of maven 3.5.0 neither of these environment variables should be specified. Instead, the path should be updated to include the mvn executable.
Solution 2:
And, ironically, you must still use M2_HOME and M2 for Maven version 3. Otherwise, it fails, because they didn't follow this logical approach with Maven V3.x for some bizarre reason.
Consequently, it is not easy to support Maven 2 & Maven 3 on the same machine without rewriting your configuration.