1、升级到maven3时,环境变量的设置

M3_HOME=D:\ProgramFiles\apache-maven-3.0.3

如果M2_HOME和M3_HOME同时存在,则报

   
   
   
   
  1. Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/plexus/classworlds/launcher/Launcher 
  2.  
  3. Caused by: java.lang.ClassNotFoundException: org.codehaus.plexus.classworlds.launcher.Launcher 
  4.  
  5.  at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
  6.  
  7.  at java.security.AccessController.doPrivileged(Native Method) 
  8.  
  9.  at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
  10.  
  11.  at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
  12.  
  13.  at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
  14.  
  15.  at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
  16.  
  17. 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会记住编译的路径,也就是是什么路径让编译通过的,当不使用之后,按照先前的路径则找不到了,则会编译错误。