[root@indigo apache]# mvn
---------------------------------------------------
constituent[0]: file:/usr/share/maven/lib/slf4j_nop.jar
constituent[1]: file:/usr/share/maven/lib/aether_spi.jar
constituent[2]: file:/usr/share/maven/lib/maven-embedder.jar
constituent[3]: file:/usr/share/maven/lib/maven-model.jar
constituent[4]: file:/usr/share/maven/lib/maven-wagon_file.jar
constituent[5]: file:/usr/share/maven/lib/objectweb-asmasm-util.jar
constituent[6]: file:/usr/share/maven/lib/atinject.jar
constituent[7]: file:/usr/share/maven/lib/maven-model-builder.jar
constituent[8]: file:/usr/share/maven/lib/maven-wagon_http-shared.jar
constituent[9]: file:/usr/share/maven/lib/plexus_plexus-cipher.jar
constituent[10]: file:/usr/share/maven/lib/aether_impl.jar
constituent[11]: file:/usr/share/maven/lib/maven-compat.jar
constituent[12]: file:/usr/share/maven/lib/xbean_xbean-reflect.jar
constituent[13]: file:/usr/share/maven/lib/plexus_interpolation.jar
constituent[14]: file:/usr/share/maven/lib/plexus_plexus-sec-dispatcher.jar
constituent[15]: file:/usr/share/maven/lib/google-guice.jar
constituent[16]: file:/usr/share/maven/lib/maven-artifact.jar
constituent[17]: file:/usr/share/maven/lib/sisu_sisu-inject-plexus.jar
constituent[18]: file:/usr/share/maven/lib/maven-wagon_http-lightweight.jar
constituent[19]: file:/usr/share/maven/lib/aether_connector-wagon.jar
constituent[20]: file:/usr/share/maven/lib/sisu_sisu-inject-bean.jar
constituent[21]: file:/usr/share/maven/lib/objectweb-asmasm-xml.jar
constituent[22]: file:/usr/share/maven/lib/objectweb-asmasm-tree.jar
constituent[23]: file:/usr/share/maven/lib/slf4j_api.jar
constituent[24]: file:/usr/share/maven/lib/nekohtml.jar
constituent[25]: file:/usr/share/maven/lib/plexus_utils.jar
constituent[26]: file:/usr/share/maven/lib/objectweb-asmasm-analysis.jar
constituent[27]: file:/usr/share/maven/lib/aopalliance.jar
constituent[28]: file:/usr/share/maven/lib/aether_util.jar
constituent[29]: file:/usr/share/maven/lib/maven-wagon_provider-api.jar
constituent[30]: file:/usr/share/maven/lib/objectweb-asmasm-all.jar
constituent[31]: file:/usr/share/maven/lib/plexus_containers-component-annotations.jar
constituent[32]: file:/usr/share/maven/lib/objectweb-asmasm.jar
constituent[33]: file:/usr/share/maven/lib/objectweb-asmasm-commons.jar
constituent[34]: file:/usr/share/maven/lib/aether_api.jar
constituent[35]: file:/usr/share/maven/lib/guava.jar
constituent[36]: file:/usr/share/maven/lib/maven-plugin-api.jar
constituent[37]: file:/usr/share/maven/lib/maven-core.jar
constituent[38]: file:/usr/share/maven/lib/cglib.jar
constituent[39]: file:/usr/share/maven/lib/maven-aether-provider.jar
constituent[40]: file:/usr/share/maven/lib/maven-settings.jar
constituent[41]: file:/usr/share/maven/lib/maven-repository-metadata.jar
constituent[42]: file:/usr/share/maven/lib/maven-settings-builder.jar
constituent[43]: file:/usr/share/maven/lib/commons-cli.jar
---------------------------------------------------
Exception in thread "main" java.lang.UnsupportedClassVersionError: javax/inject/Provider : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:386)
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:42)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230)
at org.apache.maven.cli.MavenCli.container(MavenCli.java:375)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:191)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:414)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:357)
看到 maven 在运行过程中尝试加载了一个用JDK7编译出的class文件
打开运行mvn命令的脚本 /usr/bin/mvn:
#!/bin/sh
if [ -f /usr/share/java-utils/java-functions ] ; then
. /usr/share/java-utils/java-functions
set_jvm
set_javacmd
fi
export M2_HOME="${M2_HOME:-/usr/share/maven}"
export JAVA_HOME; $M2_HOME/bin/mvn "$@"
看到 它会检查 M2_HOME 变量,如果它没有被设置或被设置为空值,就会将 M2_HOME 设置为 /usr/share/maven 并运行 /usr/share/maven/bin/mvn 这个脚本,
但这不是我安装的 maven 的路径;
在 Maven 3 中 , MAVEN_HOME 已经改为 M2_HOME 并且不会再去检查 MAVEN_HOME 这个变量了。
既然默认脚本去检查 M2_HOME,那重新设置 M2_HOME 值为 Maven 安装目录就可以了
在eclipse中使用maven时需要指定maven安装目录,所以就没有这个问题