我的命脉:OS 10.7.5 Lion,Java版本" 1.7.0_79",Maven版本3.0.3。
我在这里对环境变量很陌生,并且在使用Maven时遇到了很多麻烦。我从Homebrew获得了我当前的版本,但我需要一个更新的版本。我按照本页(Maven Install on Mac OS X)中的snooze92的说明尝试安装最新版本的Maven,3.3.3。我当前的版本3.0.3存储在/usr/share/java/maven-3.0.3
中,并且还是/usr/share/maven
上该目录的快捷方式。
echo $JAVA_HOME
返回/System/Library/Frameworks/JAVAVM.framework/Versions/CurrentJDK/Home
。
但是运行mvn --version
会返回一些细节,包括:
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/jre
(与JAVA_HOME指向的路径不同的文件夹。)
通常,echo $M2_HOME
不返回任何内容。在这种情况下,Maven 3.0.3工作得很好。如果我按照snooze92的建议创建$M2_HOME
环境变量,并使用以下命令将其添加到我的路径中:
export M2_HOME=/usr/local/apache-maven/apache-maven-3.3.3
export M2=$M2_HOME/bin
export PATH=$M2:$PATH
Maven停止工作;输入mvn --version
会返回以下内容:
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/maven/cli/MavenCli : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
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:401)
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:42)
at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:254)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
at org.codehaus.plexus.classworlds.launcher.Launcher.getMainClass(Launcher.java:144)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:266)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
退出终端(或从我的.bash_profile文件中删除上面的行并重新打开)使Maven再次正常工作,尽管它总是恢复到3.0.3版本。
我还尝试将此页面上的命令(http://www.mkyong.com/maven/install-maven-on-mac-osx/)添加到我的.bash_profile文件中:
export M2_HOME=/usr/local/apache-maven/apache-maven-3.3.3
export PATH=$PATH:$M2_HOME/bin
这会导致Maven返回错误消息:
-Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match.
答案 0 :(得分:1)
您可以编辑.bash_profile
以导出JDK 7 Mac OS安装的动态路径。这可以通过添加第一行来实现:
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
因此,应该保证在运行时不使用1.6样式的JDK(例如,由Apple提供),而是在系统环境中使用JDK 7。尝试验证
的输出 java -version
.bash_profile
文件后,在新的终端实例中。它应该给你1.7.x Java。完成此步骤后,您的新Maven版本应该可以运行,并且可以通过
进行验证 mvn -version
说明:
如果您使用/System/Library/Frameworks/JAVAVM.framework/Versions/CurrentJDK/Home
,那么您的JAVA_HOME
会得到类似的内容:
java version" 1.6.0_65" Java(TM)SE运行时环境(构建 1.6.0_65-b14-466.1-11M4716)Java HotSpot(TM)64位服务器VM(版本20.65-b04-466.1,混合模式)
这不是您想要/需要的Maven 3.3.x