簡體   English   中英

無法在Mac Lion上升級Maven-環境變量

[英]Can't upgrade Maven on Mac Lion - Environment Variables

我的命脈:OS 10.7.5 Lion,Java版本“ 1.7.0_79”,Maven版本3.0.3。

我在這里對環境變量很陌生,並且在使用Maven時遇到很多麻煩。 我從Homebrew獲得了當前版本,但是我需要更新版本。 我按照此頁面上的snooze92指示( 在Mac OS X上進行Maven安裝 )嘗試安裝最新版本的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.

您可以編輯.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版本“ 1.6.0_65” Java SE運行時環境(內部版本1.6.0_65-b14-466.1-11M4716)Java HotSpot™64位服務器VM(內部版本20.65-b04-466.1,混合模式)

這不是您想要/不需要的Maven 3.3.x

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM