在Mac OSX特立独行者中找不到Maven


Answers:


68

默认情况下,Mac OS X 10.9上不再安装Maven。您需要自己安装,例如使用Homebrew

使用Homebrew安装Maven的命令是 brew install maven


3
是的。我在Google上进行了搜索,找到了一个有用的教程freddy.cellcore.org/post/64860247445/… ..无论如何,感谢您的帮助。.享受编码:)
Sahil Mahajan

1
很好的答案,谢谢,对于我来说,只有两件事(在网络上找到了),您需要从brew运行的命令是:brew install maven来安装brew run:ruby -e“ $(curl -fsSL raw.githubusercontent.com / Homebrew / install / master / install)”
Asaf Manassen 2014年

73

如果您不想仅仅为了安装maven而安装homebrew(或任何其他软件包管理器),则可以从其站点获取二进制文件:

http://maven.apache.org/download.cgi

使用以下命令将内容提取到文件夹(例如/Applications/apache-maven-3.1.1)中

$ tar -xvf apache-maven-3.1.1-bin.tar.gz

并最终~/.bash_profile根据需要添加的文本编辑器进行调整

export M2_HOME=/Applications/apache-maven-3.1.1
export PATH=$PATH:$M2_HOME/bin

重新启动终端并进行测试

$ mvn -version

Apache Maven 3.1.1 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 17:22:22+0200)
Maven home: /Applications/apache-maven-3.1.1
Java version: 1.6.0_65, vendor: Apple Inc.
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: de_DE, platform encoding: MacRoman
OS name: "mac os x", version: "10.9", arch: "x86_64", family: "mac"

您可以尝试输出PATH-echo $PATH是否包含maven文件夹?
pkyeck 2014年

2
在必须sudo能够从/ Applications / ..文件夹中干净地运行Maven之前,我不得不使用它。我发现nofluffjuststuff.com/blog/demian_neidetcher/2013/01/…journaldev.com/2348/…的组合帮助我摆脱了困境
朱利安·哈蒂

我必须添加整个M2_HOME目录,例如,导出M2_HOME = / Users / km / Applications / apache-maven-3.3.9。另外,请确保退出并重新启动终端。
user358591 2016年

59
brew install maven

请确保您已安装最新的Xcode和命令行工具。

xcode-select --install

试过这个。现在有了“线程“主线程”中的异常java.lang.NoClassDefFoundError:org / codehaus / plexus / classworlds / launcher / Launcher” :(
Graham Lea

1
在网络上的其他地方发现该问题是由于设置了M2_HOME。我一辈子都找不到设置它的地方,但是放入unset M2_HOME.bashrc使其起作用。
Graham Lea 2014年

1
太酷了,“ xcode-select --install”帮助我解决了以下事实:升级到Mavericks后,我通过自制软件安装的所有东西(mongo,redis等)都没有进入我的路径
Vasil Daskalopoulos

这几乎是这里唯一的面向未来的解决方案,它始终提供最新版本。
史蒂文·麦康农

18
  1. 这里下载Maven 。
  2. 将刚刚下载的tar.gz解压缩到所需的位置(例如:/ Users / admin / Maven)。
  3. 打开终端。
  4. 输入“ cd ”转到您的主文件夹。
  5. 输入“ touch .bash_profile”。
  6. 键入“ open -e .bash_profile”以在TextEdit中打开.bash_profile。
  7. 在TextEditor中键入以下内容

alias mvn='/[Your file location]/apache-maven-x.x.x/bin/mvn'
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdkx.x.x_xx.jdk/Contents/Home/

(确保没有语音标记或撇号。)8.确保填写所需的数据(例如,文件位置和版本号)。

  1. 保存更改
  2. 输入“ . .bash_profile”以重新加载.bash_profile并更新您添加的所有功能。(*确保将点分隔成单个空格)。
  3. 类型 mvn -version

如果成功,您应该看到以下内容:

Apache Maven 3.1.1
Maven home: /Users/admin/Maven/apache-maven-3.1.1
Java version: 1.7.0_51, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.9.1", arch: "x86_64", family: "mac"


升级到osx maverics后使用brew出现问题。这种方法对我有用。谢谢。
thisisananth 2014年

我猜这不是完整的解决方案
Jarvis 2015年

11

该解决方案可能看起来很长,但事实并非如此。我仅列举了许多示例,以便使所有内容清晰明了。它在Mavericks OS中为我工作。

注意:我合并并编辑了上面显示的一些答案,添加了一些示例和格式并发布了结果,因此功劳主要归功于原始帖子的创建者。

  1. 这里下载Maven 。

  2. 打开终端。

  3. 将您刚刚下载的文件解压缩到所需的位置,可以手动将其解压缩,也可以在终端中键入以下几行(填充所需的数据):

    mv [Your file name] [Destination location]/ tar -xvf [Your file name]

    例如,如果我们的文件名为“ apache-maven-3.2.1-bin.tar”(Maven版本3.2.1),并且我们想在“ /Applications”目录中找到它,那么我们应该在Terminal中键入以下行:

    mv apache-maven-3.2.1-bin.tar /Applications/
    tar -xvf apache-maven-3.2.1-bin.tar
    
  4. 如果您的计算机上没有安装任何JDK(Java开发工具包),请安装一个。

  5. java -version在终端中输入“ ”。您应该会看到以下内容:

    java version "1.8.0"
    Java(TM) SE Runtime Environment (build 1.8.0-b132)
    Java HotSpot(TM) 64-Bit Server VM (build 25.0-b70, mixed mode)
    

    记住您的Java版本(在示例中为1.8.0)。

  6. 输入“ cd ~/”转到您的主文件夹。

  7. 输入“ touch .bash_profile”。

  8. 键入“ open -e .bash_profile”以在TextEdit中打开.bash_profile。

  9. 在TextEdit中键入以下内容(复制所有内容并替换所需的数据):

    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk[Your Java version].jdk/Contents/Home export M2_HOME=[Your file location]/apache-maven-[Your Maven version]/ export PATH=$PATH:$M2_HOME/bin alias mvn='$M2_HOME/bin/mvn'

    例如,在我们的示例中,我们将“ [Your Java version]”替换为“ 1.8.0”(在步骤5中获得的值),将“ [Your file location]”替换为“ /Applications”(在步骤3中用作“目的地位置”的值),将“ [Your Maven version]”替换为“ 3.2.1”(在Maven版本中观察到步骤3),产生以下程式码:

    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
    export M2_HOME=/Applications/apache-maven-3.2.1/
    export PATH=$PATH:$M2_HOME/bin
    alias mvn='$M2_HOME/bin/mvn'
    
  10. 保存更改

  11. 输入“ source .bash_profile”以重新加载.bash_profile并更新您添加的所有功能。

  12. 输入mvn -version。如果成功,您应该看到以下内容:

    Apache Maven [Your Maven version] ([Some weird stuff. Don't worry about this]) Maven home: [Your file location]/apache-maven-[Your Maven version] Java version: [You Java version], vendor: Oracle Corporation Java home: /Library/Java/JavaVirtualMachines/jdk[Your Java version].jdk/Contents/Home/jre [Some other stuff which may vary depending on the configuration and the OS of the computer]

    在我们的示例中,结果将如下所示:

    Apache Maven 3.2.1 (ea8b2b07643dbb1b84b6d16e1f08391b666bc1e9; 2014-02-14T18:37:52+01:00)
    Maven home: /Applications/apache-maven-3.2.1
    Java version: 1.8.0, vendor: Oracle Corporation
    Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0</b>.jdk/Contents/Home/jre
    Default locale: es_ES, platform encoding: UTF-8
    OS name: "mac os x", version: "10.9.2", arch: "x86_64", family: "mac"
    

这是完整的解决方案。
Jarvis

0

我不允许对pkyeck的回复发表评论,这对包括我在内的一些人都无效,因此我在他的回复中继续添加了另一条评论:

基本上,如果.bash_profile不起作用,请尝试添加他在.profile文件中提到的变量。它位于您的主目录中,然后重新启动终端。它为我工作。

明显的阻止者是您无权编辑.profile文件,对于该文件,请使用“触摸”检查访问权限,并使用“ sudo”命令获取访问权限

  1. 触摸.profile

  2. vi .profile

以下是变量pkyeck建议我们添加的一个解决方案,它可以为我编辑.profile:

  1. 导出M2_HOME = / apache-maven-3.3.3

  2. 导出PATH = $ PATH:$ M2_HOME / bin


0

对我来说,尝试上述技术确实有效,所以我打开了.bash_profile文件,并在新行中添加了以下行,以使用短cmd连接到maven:

alias mvn=/opt/apache-maven-3.6.3/bin/mvn

重新启动您的终端并点击mvn clean installcmd


0

对我来说,我安装了AdoptOpenJDK 8,而不是SE JDK8。对于它,它无法识别JAVA_HOME或mvn命令。

检查您的java_home /usr/libexec/java_home -V 并使用JAVA SE SDK(如果不同)。

然后按照上述步骤安装Maven并再次检查

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.