簡體   English   中英

在 OSX Mavericks 中找不到 mvn 命令

[英]mvn command not found in OSX Mavericks

在將其標記為重復之前,我瀏覽了這些帖子,但沒有任何幫助。

有些是特定於 Windows 的,沒有幫助。 他們中的幾個在 Mac OS X 上給出了建議,我試過但沒有幫助。

我嘗試過的(這正是Maven所建議的):

將分發存檔,即 apache-maven-3.1.1-bin.tar.gz 解壓縮到您希望安裝 Maven 3.1.1 的目錄。 這些說明假設您選擇了 /usr/local/apache-maven。 將從存檔創建子目錄 apache-maven-3.1.1。 在命令終端中,添加 M2_HOME 環境變量,例如 export M2_HOME=/usr/local/apache-maven/apache-maven-3.1.1。 添加 M2 環境變量,例如 export M2=$M2_HOME/bin。 可選:添加 MAVEN_OPTS 環境變量以指定 JVM 屬性,例如 export MAVEN_OPTS="-Xms256m -Xmx512m"。 此環境變量可用於為 Maven 提供額外的選項。 將 M2 環境變量添加到您的路徑,例如 export PATH=$M2:$PATH。 確保將 JAVA_HOME 設置為您的 JDK 的位置,例如 export JAVA_HOME=/usr/java/jdk1.5.0_02 並且 $JAVA_HOME/bin 在您的 PATH 環境變量中。 運行 mvn --version 以驗證它是否已正確安裝。

我在用於安裝的terminal上看到它工作正常。 我沒有這個問題。 但是當我在新terminal上嘗試時,我得到command not found

我還將export PATH=$M2添加到我的.bashrc中,我做了source然后重新啟動了終端,但它仍然沒有幫助。

有人可以建議如何在終端的所有會話中使用它嗎?

謝謝

如果這些可能有幫助,請嘗試遵循這些:

由於您的安裝在您安裝的終端上運行,因此您所做的所有exports都適用於current bash and its child process 但不會產生新的terminals

如果會話關閉, env變量會丟失; 使用.bash_profile ,您可以使其在所有會話中可用,因為當bash會話開始時,它會“運行”其.bashrc and .bash_profile

現在按照以下步驟操作,看看是否有幫助:

  1. 輸入env | grep M2_HOME 在工作的終端上env | grep M2_HOME 這應該給出類似的東西

    M2_HOME=/usr/local/apache-maven/apache-maven-3.1.1

  2. 輸入env | grep JAVA_HOME env | grep JAVA_HOME應該是這樣的:

    JAVA_HOME=/庫/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home

現在你有了M2_HOMEJAVA_HOME的路徑。

如果您只是執行ls /usr/local/apache-maven/apache-maven-3.1.1/bin ,您將在那里看到mvn二進制文件。 你現在要做的就是每次使用 PATH 指向這個位置。 由於bashPATH中提到的所有目錄路徑中搜索,它會找到mvn

  1. 現在打開.bash_profile ,如果你沒有,只需創建一個

    vi ~/.bash_profile

添加以下內容:

#set JAVA_HOME
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home
export JAVA_HOME


M2_HOME=/usr/local/apache-maven/apache-maven-3.1.1
export M2_HOME

PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin
export PATH
  1. 保存文件並輸入source ~/.bash_profile 此步驟執行.bash_profile文件中的命令,您現在可以開始了。

  2. 打開一個新終端並輸入mvn應該可以工作。

上面的解決方案很好,但它們需要 ~/.bash_profile。 /usr/local/bin已經在$PATH中,可以通過echo $PATH來確認。 下載 maven並運行以下命令 -

$ cd ~/Downloads
$ tar xvf apache-maven-3.5.3-bin.tar.gz
$ mv apache-maven-3.5.3 /usr/local/
$ cd /usr/local/bin
$ sudo ln -s ../apache-maven-3.5.3/bin/mvn mvn
$ mvn -version
$ which mvn

注意: apa​​che maven 的版本將是您將下載的版本。

這對我有用。

首先,我檢查了 M2_HOME 變量是否設置為env | grep M2_HOME env | grep M2_HOME 我什么都沒有

我知道我在文件夾“/usr/local/apache-maven-3.2.2”中安裝了 Maven,因此執行以下 3 個步驟為我解決了問題:

  1. 設置 M2_HOME 環境變量

M2_HOME=/usr/local/apache-maven-3.2.2

  1. 設置 M2 環境變量

M2=$M2_HOME/bin

  1. 更新路徑

export PATH=$M2:$PATH

如上所述,如果您希望它自動執行,您可以將該序列保存在.bash_profile文件中。

我遇到了同樣的問題,我嘗試了以上所有方法,都沒有解決我的問題。 幸運的是,我這樣解決了這個問題:

echo $SHELL

輸出

/bin/zsh
OR 
/bin/bash

If it showing "bash" in output. You have to add env properties in .bashrc file (.bash_profile i did not tried, you can try) or else
It is showing 'zsh' in output. You have to add env properties in .zshrc file, if not exist already you create one no issue.

安裝maven的步驟:

  1. http://maven.apache.org/download.cgi下載 maven 文件
  2. $tar xvf apache-maven-3.5.4-bin.tar.gz
  3. 將 apache 文件夾復制到所需位置$cp -R apache-maven-3.5.4 /Users/locals
  4. 轉到 apache 目錄$cd /Users/locals/apache-maven-3.5.4/
  5. 創建 .bash_profile $vim ~/.bash_profile
  6. 編寫這兩個命令: export M2_HOME=/Users/manisha/apache-maven-3.5.4 export PATH=$PATH:$M2_HOME/bin 7 保存並退出vim :wq!
  7. 重新啟動終端並輸入mvn -version

可能的解決方案是你的mac系統中沒有安裝maven。 使用此命令安裝 Maven:

brew install maven

並且,要驗證它是否已成功安裝,請運行以下命令:

mvn -v

如果它返回您的 maven 版本,則 maven 已成功安裝在您的系統中。

我按照頭腦風暴的指示,仍然沒有得到不同的結果——任何新的終端窗口都無法識別 mvn 命令。 我不知道為什么,但是將聲明分解成更小的塊 .bash_profile 有效。 據我所知,我基本上在做和他一樣的事情。 這是我的 .bash_profile 中看起來不同的地方:

JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home
export PATH JAVA_HOME
J2=$JAVA_HOME/bin
export PATH J2
M2_HOME=/usr/local/apache-maven/apache-maven-2.2.1
export PATH M2_HOME
M2=$M2_HOME/bin
export PATH M2

您可能有 2 種類型的 shell 實例。 sh 與 zsh。 兩者都可以定義不同的路徑。 通過在終端中鍵入以下行來檢查您的 PATH 環境變量

echo $PATH

要進行測試,您可以更改 shell 模式 -

sh 到 zsh -> 鍵入 zsh 並在終端中按 Enter(注意 $ 更改為 %)

zsh to sh -> 輸入 sh/bash 並在終端中按回車(注意 % 更改為 $)

在兩種 shell 模式下,檢查 PATH 環境。 使兩者相同,或根據需要附加其他路徑。

在 1 個 shell 而不是在其他 shell 中運行的命令將被排序。

暫無
暫無

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

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