MacBook 上 Maven 的完整安装与配置指南:从下载到实战应用
1. 为什么你的 MacBook 需要一个得力的“项目管家”如果你刚开始在 Mac 上学习 Java 开发或者刚从 Windows 平台切换过来可能会觉得有点手忙脚乱。Java 项目里那一大堆的.jar文件、复杂的依赖关系还有编译、打包这些繁琐的步骤是不是让你有点头疼别担心今天我要跟你分享的就是解决这些问题的“瑞士军刀”——Apache Maven。你可以把 Maven 想象成你项目的一个超级管家。以前你得自己手动去网上找各种第三方库比如处理 JSON 的 Jackson、连接数据库的 JDBC 驱动下载下来再小心翼翼地放到项目的lib文件夹里。版本冲突了怎么办这个库又依赖另一个库怎么办光是想想就头大。Maven 的出现就是为了终结这种混乱。它通过一个叫做pom.xml的配置文件帮你声明项目需要哪些“零件”依赖以及如何组装这些零件构建生命周期。你只需要告诉管家“我要建一个 Web 项目”它就能自动帮你下载好所有必需的库并且保证版本都是兼容的最后还能帮你把整个项目打包成可以运行的war或jar文件。在 MacBook 上配置 Maven 尤其方便因为 macOS 本身就是一个基于 Unix 的系统命令行环境非常强大和友好。跟着我这篇指南你不仅能学会怎么在 Mac 上把 Maven 装好、配好更能理解它背后的工作逻辑真正做到从“会用”到“懂用”。整个过程就像搭乐高我们一步步来保证清晰明了。好话不多说我们开始动手吧2. 第一步为你的 Mac 获取 Maven “安装包”安装任何软件的第一步都是找到正确的“安装包”。对于 Maven 来说最权威的来源当然是它的官方网站。不过直接从国外的 Apache 官网下载速度可能会像挤牙膏一样慢。幸运的是国内有很多高校和机构提供了镜像站点下载速度飞快我们完全可以利用起来。2.1 选择合适的 Maven 版本首先打开你的浏览器访问 Maven 的官方下载页面。这里你会看到两个主要的版本Binary zip archive和Source zip archive。我们需要的是Binary zip archive这是已经编译好的、可以直接运行的版本。Source版本是源代码除非你想研究 Maven 本身是怎么写的否则用不上。关于版本号我建议选择最新的稳定版。比如目前最新的稳定版是 3.9.x 系列。但有一点需要注意确保你的 Maven 版本和 JDK 版本兼容。一般来说Maven 3.3 需要 JDK 1.7 或以上Maven 3.6 需要 JDK 1.8 或以上。如果你还在用很老的 JDK 1.6那可能就得找老版本的 Maven 了。在终端输入java -version就能快速查看你的 Java 版本。我自己的 Mac 上装的是 JDK 11所以选择最新的 Maven 3.9.x 完全没问题。2.2 使用国内镜像加速下载找到了正确的下载链接后先别急着点。我们可以把链接里的域名换成国内的镜像站速度会提升好几个数量级。一个非常好用的国内镜像站是阿里云的 Maven 仓库镜像。通常官方链接长这样https://dlcdn.apache.org/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.zip。我们可以手动将其中的dlcdn.apache.org替换为阿里云的镜像地址。不过更省事的办法是直接访问国内的镜像网站页面。这里我推荐北京外国语大学的开源软件镜像站它同步很及时。你可以在浏览器里访问这个地址找到对应版本的bin.zip文件进行下载。这样一个几百兆的压缩包几十秒就能下好体验非常舒畅。下载完成后你会在下载文件夹里看到一个名为apache-maven-3.9.6-bin.zip的文件版本号可能不同。这就是我们需要的全部东西了。2.3 解压到合适的位置接下来我们要把这个“压缩包”解压并把里面的文件放到一个你找得到、并且不会轻易删除的地方。很多新手喜欢把软件直接丢在下载文件夹或者桌面上这其实不是一个好习惯。我个人的习惯是在用户主目录下创建一个专门的Development或Tools文件夹用来存放所有开发相关的环境和工具这样既整洁也便于管理。打开你的“终端”应用。我们将使用unzip命令来解压。假设你把下载的 zip 文件放在了~/Downloads即“下载”文件夹并且你打算把 Maven 解压到~/Development目录下可以依次执行以下命令# 首先确保目标目录存在如果不存在就创建它 mkdir -p ~/Development # 然后解压压缩包到目标目录 unzip ~/Downloads/apache-maven-3.9.6-bin.zip -d ~/Development/执行完这两条命令后进入~/Development目录看看你会发现多了一个apache-maven-3.9.6的文件夹。用ls -la命令列出它的内容你会看到类似这样的结构LICENSE NOTICE README.txt bin/ boot/ conf/ lib/这个结构就是 Maven 的家了。bin目录里存放着可执行命令最重要的就是mvn这个脚本conf目录里存放着全局配置文件特别是settings.xml我们后面会详细配置它lib目录里则是 Maven 运行时自己需要的一些核心库。到这一步Maven 的“身体”已经就位了接下来我们要让它变得“听话”能在系统的任何地方被我们召唤。3. 第二步让系统认识你的 Maven “管家”现在Maven 已经安静地躺在你的~/Development/apache-maven-3.9.6目录里了。但是如果你现在直接在终端里输入mvn --version系统会一脸茫然地告诉你“command not found”。为什么呢因为你的操作系统还不知道这个叫mvn的命令在哪里。我们需要告诉系统一条“寻人启事”这就是配置环境变量。3.1 理解环境变量 PATH 的作用你可以把环境变量PATH想象成一张“命令地图”。当你在终端输入一个命令比如ls,java, 或者我们想要的mvn时系统会拿着这个名字按照PATH变量里记录的一系列目录路径一个一个去找看看哪个目录下有这个可执行文件。找到了就执行找不到就报错。所以我们的目标就是把 Maven 的bin目录的路径添加到这张“地图”的最前面让系统能第一时间找到它。3.2 配置 MVN_HOME 和 PATH通常我们会先设置一个M2_HOME或MAVEN_HOME变量我习惯用MAVEN_HOME指向 Maven 的安装根目录。这样做的好处是以后如果 Maven 的路径变了或者你想切换 Maven 版本只需要改这一个变量的值所有引用它的地方都会自动更新非常方便。然后我们把$MAVEN_HOME/bin添加到PATH变量的最前面。放在最前面是为了优先使用我们自定义的 Maven防止系统里有其他旧版本的 Maven 干扰。具体配置哪个文件取决于你使用的 Shell。macOS 从 Catalina 版本开始默认的 Shell 是zsh所以配置文件是用户主目录下的.zshrc文件。如果你不确定可以在终端输入echo $SHELL查看。如果是/bin/zsh那就跟我一样。我们用文本编辑器来修改这个文件。我习惯用命令行编辑器nano因为它简单直观。在终端输入nano ~/.zshrc这会打开.zshrc文件。滚动到文件的末尾或者找一个你觉得合适的位置添加以下几行# 设置 Maven 家目录请将路径替换成你实际解压的路径 export MAVEN_HOME/Users/你的用户名/Development/apache-maven-3.9.6 # 将 Maven 的 bin 目录添加到 PATH 的最前面 export PATH$MAVEN_HOME/bin:$PATH注意上面的/Users/你的用户名/Development/一定要替换成你电脑上真实的路径一个快速获取绝对路径的方法是在终端里先cd进入你的 Maven 安装目录比如cd ~/Development/apache-maven-3.9.6然后输入pwd命令屏幕上显示的完整路径就是你要填写的。添加完成后按Ctrl O来保存文件再按Ctrl X退出nano编辑器。3.3 让配置立刻生效并验证修改了配置文件但当前的终端会话还不知道这些变化。我们需要“刷新”一下配置。在终端输入source ~/.zshrc这条命令会让系统重新读取并执行.zshrc文件里的所有设置。现在激动人心的验证时刻到了输入mvn --version如果你看到类似下面的输出那么恭喜你大功告成Apache Maven 3.9.6 (你的版本号) Maven home: /Users/你的用户名/Development/apache-maven-3.9.6 Java version: 11.0.20, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home ...这行信息不仅确认了mvn命令可用还显示了 Maven 的家目录和使用的 Java 版本一举两得。你可以再开一个新的终端窗口试试mvn --version应该同样能工作这说明配置是持久化的。至此你的 Maven 管家已经正式上岗随时听候调遣了。4. 第三步给管家一本“工作手册”——配置 settings.xmlMaven 本身能工作了但如果你现在就去创建一个项目可能会发现下载依赖的速度奇慢无比甚至超时失败。这是因为 Maven 默认会去国外的中央仓库下载东西网络状况很不稳定。为了解决这个问题也为了进行一些个性化设置我们需要配置 Maven 的“工作手册”——settings.xml文件。这个文件有两个位置一个是 Maven 安装目录下的conf/settings.xml这是全局配置对所有用户都生效另一个是用户主目录下的.m2/settings.xml这是用户级配置只对当前用户生效。通常我们优先修改用户级的配置因为这样不会影响其他用户也更安全。4.1 创建并配置用户级 settings.xml首先我们需要在用户主目录下创建.m2文件夹和settings.xml文件。在终端里可以一键完成mkdir -p ~/.m2 cp $MAVEN_HOME/conf/settings.xml ~/.m2/这样就把全局的配置文件模板复制到了你的个人目录下。接下来用你喜欢的编辑器打开它进行修改。我继续用nanonano ~/.m2/settings.xml这个文件内容比较多我们主要关注几个关键部分。首先是镜像配置。找到mirrors标签在里面添加阿里云的镜像。这相当于告诉 Maven“以后去仓库拿东西别跑远路了直接去阿里云这个‘代购点’又快又全。” 在mirrors标签内添加如下内容mirror idaliyunmaven/id mirrorOf*/mirrorOf name阿里云公共仓库/name urlhttps://maven.aliyun.com/repository/public/url /mirrormirrorOf*/mirrorOf表示对所有仓库请求都使用这个镜像这样配置最简单粗暴也最有效。其次是本地仓库路径。Maven 会把下载下来的所有依赖包jar包都存放在一个本地目录里默认是在~/.m2/repository。如果你觉得这个路径太深或者想把它放在一个更大容量的磁盘分区可以修改它。找到localRepository标签默认是被注释掉的取消注释并修改成你想要的路径localRepository/Users/你的用户名/Development/maven_repo/localRepository我习惯把它放在开发目录下和 Maven 安装目录放在一起方便管理。最后是 JDK 版本配置可选但推荐。如果你电脑上安装了多个版本的 JDK比如同时有 JDK 8 和 JDK 17你可能会希望 Maven 默认使用某个特定的版本来编译项目。这可以在profiles标签里配置。在profiles标签内添加一个 profileprofile idjdk-11/id activation activeByDefaulttrue/activeByDefault jdk11/jdk /activation properties maven.compiler.source11/maven.compiler.source maven.compiler.target11/maven.compiler.target maven.compiler.compilerVersion11/maven.compiler.compilerVersion /properties /profile这个配置做了两件事一是当检测到系统 JDK 版本是 11 时自动激活这个配置二是设定了 Java 源码版本和目标字节码版本都是 11。这样即使你系统环境变量JAVA_HOME指向的是其他版本Maven 在编译时也会强制使用 Java 11 的语法和特性避免版本不一致带来的奇怪问题。保存并关闭settings.xml文件。这些配置会在你下一次运行 Maven 命令时自动生效。现在你的 Maven 管家不仅认得路还拿到了高效的“采购指南”和明确的工作标准准备工作已经全部就绪了。5. 第四步实战用 Maven 创建你的第一个 Web 项目理论准备得再充分不如动手做一遍。现在我们就用刚刚配置好的 Maven来创建一个标准的 Java Web 项目并完成编译、打包的全过程。你会看到之前那些繁琐的步骤现在只需要几条简单的命令。5.1 使用 Archetype 快速生成项目骨架Maven 提供了一个非常强大的功能叫Archetype你可以把它理解为“项目模板生成器”。它内置了各种各样项目的标准结构模板比如简单的 Java 应用、Web 应用、Spring Boot 应用等等。我们只需要告诉它模板的编号和项目的基本信息它就能在几秒钟内生成一个结构完整、配置好的项目目录。首先找一个你存放代码的地方比如~/Code目录。在终端里进入这个目录cd ~/Code然后执行以下命令来创建一个最基础的 Web 应用项目mvn archetype:generate \ -DgroupIdcom.yourcompany \ -DartifactIdmy-first-webapp \ -DarchetypeArtifactIdmaven-archetype-webapp \ -DinteractiveModefalse我来解释一下这几个参数-DgroupId 这通常是你公司或组织的反向域名比如com.yourcompany。它和artifactId一起构成了你这个项目在 Maven 世界里的唯一坐标。-DartifactId 这是你的项目名比如my-first-webapp。它也会作为生成的项目文件夹的名字。-DarchetypeArtifactId 这是指定我们要使用的模板。maven-archetype-webapp是 Maven 官方提供的一个最基础的 Web 应用模板。-DinteractiveModefalse 这个参数很重要它告诉 Maven 不要进入交互式提问模式直接使用我们提供的默认值比如版本号1.0-SNAPSHOT来生成项目。对于新手来说这样可以避免在命令行里手忙脚乱地输入一堆确认信息。执行这条命令后你会看到终端开始疯狂刷屏这是 Maven 在从我们配置的阿里云镜像下载生成模板所需要的插件和元数据。第一次运行会慢一些因为它需要下载一些东西到本地仓库。稍等片刻当看到最后出现BUILD SUCCESS时就说明项目创建成功了现在用ls命令看一下你会发现当前目录下多了一个名为my-first-webapp的文件夹这就是我们项目的根目录了。5.2 探索生成的项目结构进入项目目录看看 Maven 为我们生成了什么cd my-first-webapp ls -la你会看到类似这样的结构my-first-webapp/ ├── pom.xml ├── src/ │ └── main/ │ ├── resources/ │ └── webapp/ │ ├── WEB-INF/ │ │ └── web.xml │ └── index.jsp这个结构就是标准的 Maven Web 项目布局非常重要我带你快速过一遍pom.xml 这是项目的“心脏”和“大脑”。Project Object Model的缩写一个 XML 文件里面定义了项目的所有信息用什么 JDK 版本、项目依赖哪些库、如何打包、插件配置等等。以后你几乎所有的项目配置都在这个文件里进行。src/main/webapp 这是 Web 应用的根目录。你写的index.jsp页面、图片、CSS/JS 文件等静态资源通常都放在这里或其子目录下。src/main/webapp/WEB-INF/web.xml 这是老式 Java Web 项目的部署描述符文件。虽然现在很多新框架如 Spring Boot已经不用它了但这个模板还是生成了它让你了解最传统的配置方式。src/main/resources 这里存放配置文件比如.properties文件、mybatis-config.xml等。src/test 虽然这个简单模板没生成但标准 Maven 项目会有这个目录用于存放单元测试代码。花几分钟时间用文本编辑器打开pom.xml和index.jsp看看里面的内容感受一下这个标准的起点。你会发现pom.xml里已经定义好了项目的groupId,artifactId,version合称GAV坐标以及项目类型packaging是war。5.3 执行完整的构建生命周期项目骨架有了我们来让它“动起来”。Maven 的核心是一个构建生命周期由一系列阶段phase组成。最常用的几个命令其实就是触发不同的生命周期阶段mvn compile 编译项目的主代码。我们的模板项目里没有 Java 代码所以这个命令执行后可能看不到target/classes目录但流程是走的。mvn test 运行所有的单元测试。mvn package 这是打包阶段。对于我们的 Web 项目packaging是war这个命令会执行编译、测试如果有然后将整个 Web 应用打包成一个.war文件。这个文件可以直接部署到 Tomcat、Jetty 这样的 Servlet 容器里运行。mvn install 在package的基础上还会把打好的包比如.war文件安装到你的本地 Maven 仓库就是之前settings.xml里配置的那个localRepository路径。这样其他本地项目就可以像引用第三方库一样引用你这个项目了。mvn clean 清理命令会删除target目录让项目回到编译前的干净状态。我们来实际操作一下最关键的打包命令。确保你在my-first-webapp项目目录下然后输入mvn clean package我习惯把clean和package连起来用意思是“先清理掉旧的构建结果再重新打包”这样可以避免一些缓存带来的奇怪问题。命令执行后Maven 会依次执行clean,resources,compile,test,package等阶段。因为我们的项目很简单没有测试所以会很快完成。当看到最终的BUILD SUCCESS后查看一下项目目录ls target/你应该会看到一个my-first-webapp.war文件文件名是artifactId加上版本号。这个war文件就是可以交付部署的最终产品了你可以把它复制到 Tomcat 的webapps目录下启动 Tomcat然后在浏览器访问http://localhost:8080/my-first-webapp/就能看到index.jsp页面的内容了。走完这一步你不仅成功创建了一个项目更完整地体验了 Maven 自动化构建的魔力。从一堆配置和命令到一个实实在在可以运行的war包整个过程清晰、可控。这只是一个开始随着你项目的复杂你会往pom.xml里添加越来越多的依赖配置更多的插件Maven 这个管家的价值也会越发凸显。希望这篇指南能帮你扫清在 Mac 上使用 Maven 的入门障碍让你能更专注于写出漂亮的代码。如果在实践中遇到任何问题别忘了 Maven 的命令行输出信息非常详细那通常是解决问题的第一手资料。祝你编码愉快
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2414694.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!