在Mac OS X上安装Maven

642

我正试图按照这些说明通过终端安装maven。

到目前为止,我已经得到了以下结果:

export M2_HOME=/user/apple/apache-maven-3.0.3
export M2=$M2_HOME/bin
export PATH=$M2:$PATH
export JAVA_HOME=/usr/java/jdk1.6.0_22

你去哪里找到这个?


2
你想要找到什么?按照你列出的环境变量,应该可以从终端窗口调用mvn可执行文件。 - Sri Sankaran
如果你像我一样,正在尝试从Maven 3降级回到Maven 2,请参考这篇优秀的博客:http://blog.frau-klein.org/2011/04/how-to-downgrade-maven-from-3-x-to-2-x-on-mac-os/。 - Jeff
2
Edgardo,我觉得你应该取消勾选已选答案(如果可以的话)... - jcollum
我认为从2020年开始,使用Homebrew应该是首选的答案,你觉得呢? - Matthieu Wipliez
你去哪里找答案?这些答案解释了如何安装Maven,但实际上问题是什么? - user985366
26个回答

2111

另外,我建议安装Homebrew来获取这些工具。

然后您只需使用以下命令安装Maven:

brew install maven

PS:如果你收到了404错误,请尝试在之前执行brew update


170
在OS X 10.9 Mavericks中,由于没有安装Maven(至少在beta版中是这样),这是正确的答案。 - Nacho L.
10
这是一个答案,但不是唯一的“正确”答案。在我看来,从Maven网站下载Maven二进制压缩包更快、更容易。 - RCross
16
在OS X 10.9上,您应该使用brew install maven30,因为似乎maven 3.1.1存在错误。 - tadeuzagallo
18
"brew install homebrew/versions/maven30" 对我很有用。感谢 @TadeuZagallo!! - fmquaglia
17
不再需要使用 brew install maven30,因为最新版本的 3.2.1 相当快且似乎没有 3.1.1 中存在的错误。 - Michael Hogenson
显示剩余12条评论

250

免责声明:此处是针对最新版本的OS X(10.9,也称为Mavericks)的完整答案。我知道我在此答案中编译的所有内容已经出现在页面上,但是将它们清晰地呈现在一个答案中会更加明确。

首先,在以前的OS X版本中,默认安装了Maven。如果缺少Java,请在终端中运行you@host:~ $ java,这样会提示您进行Java安装。

在Mac OS X 10.9(Mavericks)中,Maven不再默认安装。有不同的选项:

  • 使用Homebrew
    • you@host:~$ brew install maven将安装最新的Maven(截至2018年2月1日为3.5.2)
    • you@host:~$ brew install maven30将安装Maven 3.0(如果需要)
  • 使用Macports: (我没有测试过)
    • you@host:~$ sudo port install maven将安装最新的Maven(?)
    • 或者:
    • you@host:~$ sudo port install maven3将安装Maven 3.0
    • you@host:~$ sudo port select --set maven maven3选择该版本的Maven
  • 手动安装:
    • 官网下载Maven。
    • 按照安装说明操作:
      1. 解压分发存档,即apache-maven-3.3.9-bin.tar.gz到您希望安装Maven 3.3.9的目录中。子目录apache-maven-3.3.9将从存档中创建。
      2. 可选:添加MAVEN_OPTS环境变量以指定JVM属性,例如 export MAVEN_OPTS="-Xms256m -Xmx512m"。此环境变量可用于为Maven提供额外的选项。
      3. 确保JAVA_HOME设置为您的JDK位置,例如 export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) 并且$JAVA_HOME/bin在您的PATH环境变量中(尽管在最新的Mac OS X版本和Oracle JDK上可能不是必需的)。
      4. 将解压的apache-maven-3.3.9/bin添加到您的$PATH
      5. 运行mvn --version以验证是否正确安装。

6
sudo port install maven3 安装的是 Maven 3.0.5 版本。 - njudge
3
如果要手动安装,不要费力去找JAVA_HOME,可以考虑使用export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)(参见这个回答)。另外(至少在Mavericks和Yosemite上与Oracle JDK 1.8一起使用),你不需要将$JAVA_HOME/bin添加到路径中,因为所有东西都是从/usr/bin链接的。 - David Moles
1
最好将export指令添加到~/.bash_profile中,以便在所有会话中都可以使用它。有关详细信息,请参见此帖子 - Mzq
比什么更好,@Miranda?我没有指定在“手动安装”选项中在哪里进行export,因为我认为选择手动安装的人最清楚他们想在哪里进行这些导出。我觉得这对每个人和每个系统都非常具体。 - snooze92
@fearless_fool 你说得对,我已经更新了答案的手册部分。 - snooze92
显示剩余2条评论

226

在 Mavericks(10.9)之前的 OS X 上实际上已经内置了 Maven 3。

如果您使用的是 OS X Lion,则默认情况下没有安装 Java。只需运行 java 命令,它会提示您安装 Java。

假设满足要求,请运行 mvn -version 命令,您将看到如下输出:

Apache Maven 3.0.3 (r1075438; 2011-02-28 12:31:09-0500)
Maven home: /usr/share/maven
Java version: 1.6.0_29, vendor: Apple Inc.
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: en_US, platform encoding: MacRoman
OS name: "mac os x", version: "10.7.2", arch: "x86_64", family: "mac"

3
FYI,Mountain Lion同样附带了3.0.3版本。 - Michael
415
在OSX 10.9 Maverick中,Maven不再默认安装。 - Jerry Tian
15
我已经在Maverick上安装了Java,但是它没有为我安装Maven。 - Swapnil
6
Yosemite安装时不包含Maven,无论是与Java还是Xcode命令行工具一起安装。 - Michael
1
安装完毕后,使用'brew install maven'命令,但只有在额外设置M2_HOME、M2并将它们添加到PATH后,才能让Maven正常工作。 - Yauhen
显示剩余9条评论

90

我最近升级到了OS X Mavericks,但我的maven构建开始失败了。所以我需要再次安装maven,因为它没有内置在系统中。然后我尝试了以下命令:

brew install maven 

它可以工作,但安装了maven的3.1.1版本,这会对一些用户造成问题,比如(https://cwiki.apache.org/confluence/display/MAVEN/AetherClassNotFound)。所以,如果你遇到了同样的问题,你可能想要安装早期的Maven版本,即3.0.5。要使用Homebrew执行以下命令:

brew install https://raw.github.com/Homebrew/homebrew-versions/master/maven30.rb

就是这样,它会使用另一个Homebrew的配方,这将为您提供maven 3.0.5。


原始文件目前偶尔出现503错误。当它能正常工作时,我将其保存到本地文件中。 - NRitH
1
不得不手动编辑brew文件以避免404错误。'brew edit maven'。我在“url”中硬编码了一个镜像,并且还必须更改'sha'校验和。 url'http://apache.mesi.com.ar/maven/maven-3/3.0.4/binaries/apache-maven-3.0.4-bin.tar.gz' sha1'aecc0d3d67732939c0056d4a0d8510483ee1167e' - Derek
请确保在执行 brew install maven 命令之前先执行 brew update 命令以获取最新版本,如果您想要安装 Maven 3.1.1+。 - Gary S. Weaver
2
brew install maven30 - timomeinen
1
我刚使用了 brew install maven 安装了 Maven 3.0.5。这是当我执行 mvn -version 命令时输出的结果:mvn -version Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 05:51:28-0800) Maven home: /usr/local/Cellar/maven/3.0.5/libexec Java version: 1.7.0_45, vendor: Oracle Corporation Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre Default locale: en_US, platform encoding: UTF-8 OS name: "mac os x", version: "10.9.3", arch: "x86_64", family: "mac" - Azurespot
你最近执行了 brew update 吗?我刚在一台从未安装过 Maven 的 Mavericks 笔记本上尝试了 brew install maven,结果得到了 Apache Maven 3.3.3。 - snooze92

50

从macOS Sierra版本开始

使用brew安装maven


4
虽然这段代码片段可能解决了问题,但是包括解释真的有助于提高您发布内容的质量。请记住,您为未来的读者回答问题,这些人可能不知道您提出代码建议的原因。另外,请尝试不要在代码中添加过多的解释性注释,这会降低代码和解释的可读性! - kayess
1
如果你遇到了“brew command not found”的错误,那么你需要先安装brew。以下是官网链接: https://brew.sh/ 以下是安装命令: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" - 3akat

46

在 OS X 上安装 Maven,前往 Apache Maven 网站下载二进制 zip 文件。

然后,您可以将 Downloads 文件夹中的 apache-maven-3.0.5 文件夹移到任何您想要保存 Maven 的地方;但由于剩余的过程涉及命令行,建议您从那里完成所有操作。

在命令行中,您需要运行类似以下内容的命令:

mv ~/Downloads/apache-maven-3.0.5 ~/Development/

这只是我的个人喜好 - 在我的主目录中有一个名为“Development”的目录。如果你愿意,你可以选择其他名称。

接下来,在您选择的编辑器中,编辑~/.profile文件,并添加以下内容:

export M2_HOME="/Users/johndoe/Development/apache-maven-3.0.5"
export PATH=${PATH}:${M2_HOME}/bin

第一行对于Maven非常重要(必须是一个完整的显式路径);第二行对于shell很重要,以便运行“mvn”二进制文件。如果您已经在.profile中有了该第二行的变体,则只需在其末尾添加${M2_HOME}/bin即可。

现在打开第二个终端窗口并运行

mvn -version

应该输出类似于...

Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 13:51:28+0000)
Maven home: /Users/johndoe/Development/apache-maven-3.0.5
Java version: 1.7.0_40, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.9", arch: "x86_64", family: "mac"

需要注意的几件事情:

  1. 如果您安装了Oracle JDK 1.7,则可能会发现Maven在上面的输出中报告JDK 1.6。要解决此问题,请将以下内容添加到您的~/.profile文件中:

    export JAVA_HOME=$(/usr/libexec/java_home)

  2. 正如一些人指出的那样,Maven历史上要么随OS X本身一起提供,要么随可选的XCode命令行工具一起提供。这可能不再适用于未来版本的OS X,实际上OS X Mavericks没有包含Maven。个人观点:这可能是因为它们仍处于beta版,也可能是因为苹果公司查看了最新的Thoughtworks Technology Radar,并发现Maven已被移至“Hold”。


3
自从Mavericks发布后的第二天起,它不再附带Maven。你的指示对此很有帮助。 - Bryce Fischer
我认为我已经完全按照这些说明操作了,甚至包括~/Development。但是apache-maven-3.0.5没有子目录“bin”。 - garyp
抱歉,我下载了源代码分发版而不是二进制文件。对于造成的干扰,我表示歉意。 - garyp
MAC OS Sierra(10.12.4)中的.profile或.bash_profile等价物是什么?我正在尝试安装maven,但在我的主目录中没有.profile或.bash_profile文件... - Crenguta S
@CrengutaS 这是 ~/.profile,但该文件默认情况下不存在;您需要创建它。关于为什么没有 .bash_profile 的解释,请参见 https://apple.stackexchange.com/questions/119711/why-doesnt-mac-os-x-source-bashrc 的第一个答案。 - RCross

40

如果在OS X 10.9 Mavericks上使用MacPorts,您可以直接执行以下操作:

sudo port install maven3
sudo port select --set maven maven3

26

25

仅作简单补充说明;如果您想使用Homebrew 1.5.2在MacOS上安装特定版本,则可以按以下方式安装:

  1. brew update
  2. brew search maven

这将提供在homebrew中可用的maven版本

  1. brew install maven@3.3

[如果您想安装maven 3.3.]


17

两种方法

  • (使用homebrew) 自动安装:
    • 命令:
      • brew install maven
    • 优缺点
      • 优点: 简单易行
      • 缺点: (可能) 不是最新版本
  • 手动安装 (用于最新版本):
    • 优缺点
      • 优点: 使用您期望的任何(或最新的)版本
      • 缺点: 需要自己完成
    • 步骤
      • Maven官方下载获取最新的二进制包(apache-maven-3.6.3-bin.zip)
      • 解压 (apache-maven-3.6.3-bin.zip)并将maven路径添加到环境变量PATH
        • 通常是编辑和添加:
          • export PATH=/path_to_your_maven/apache-maven-3.6.3/bin:$PATH
        • 到您的启动脚本(~/.bashrc~/.zshrc等)中

额外说明

如何立即生效并检查是否正确安装?

A:

source ~/.bashrc
echo $PATH
which mvn
mvn --version

这里是输出:

➜  bin pwd
/Users/crifan/dev/dev_tool/java/maven/apache-maven-3.6.3/bin
➜  bin ll
total 64
-rw-r--r--@ 1 crifan  staff   228B 11  7 12:32 m2.conf
-rwxr-xr-x@ 1 crifan  staff   5.6K 11  7 12:32 mvn
-rw-r--r--@ 1 crifan  staff   6.2K 11  7 12:32 mvn.cmd
-rwxr-xr-x@ 1 crifan  staff   1.5K 11  7 12:32 mvnDebug
-rw-r--r--@ 1 crifan  staff   1.6K 11  7 12:32 mvnDebug.cmd
-rwxr-xr-x@ 1 crifan  staff   1.5K 11  7 12:32 mvnyjp
➜  bin vi ~/.bashrc
➜  bin source ~/.bashrc
➜  ~ echo $PATH
/Users/crifan/dev/dev_tool/java/maven/apache-maven-3.6.3/bin:xxx
➜  bin which mvn
/Users/crifan/dev/dev_tool/java/maven/apache-maven-3.6.3/bin/mvn
➜  bin mvn --version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /Users/crifan/dev/dev_tool/java/maven/apache-maven-3.6.3
Java version: 1.8.0_112, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "mac os x", version: "10.14.6", arch: "x86_64", family: "mac"

如需完整细节,请参考我的(中文)文章:【已解决】Mac中安装Gradle


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接