M3_HOME=D:\ProgramFiles\apache-maven-3.0.3
如果M2_HOME和M3_HOME同时存在,则报
Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/plexus/classworlds/launcher/Launcher
Caused by: java.lang.ClassNotFoundException: org.codehaus.plexus.classworlds.launcher.Launcher
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: org.codehaus.plexus.classworlds.launcher.Launcher. Program will exit.
解决方案:去掉M2_HOME环境变量的设置
参考Oracle的方案:http://blogs.oracle.com/sreekanth/entry/java_lang_noclassdeffounderror_org_codehaus
2、Maven2.2.1和Maven3.0.3 激活Profile的区别
在maven 2.2.1版本中,使用-Pb2b.unmanaged激活外部的仓库后,会下载外部的插件到本地,下次编译的时则不再需要再次激活。
在maven 3.0.3版本中,使用-Pb2b.unmanaged激活之后编译通过,而不使用-P之后会出现错误,maven会记住编译的路径,也就是是什么路径让编译通过的,当不使用之后,按照先前的路径则找不到了,则会编译错误。