# 如何在 Windows,Linux 和 Mac 上安裝 Maven
> [https://javatutorial.net/how-to-install-maven-on-windows-linux-and-mac](https://javatutorial.net/how-to-install-maven-on-windows-linux-and-mac)
在本教程中,我們將介紹 Maven 的安裝過程。

如果您是 **WINDOWS** 用戶(如果不是,則向下滾動以查看如何安裝 Maven(如果您是 Linux 或 Mac 用戶)):
在繼續下一步之前,請確保您已在系統上安裝了 JDK。 如果沒有,您可以查看[本文](https://javatutorial.net/install-java-8-jdk-on-ubuntu),以獲取快速的分步指南。 要查看 Maven 的所有必要最低要求,請在此處單擊[或查看下面的圖像](http://maven.apache.org/download.cgi#Requirements)

單擊此處的[并下載最新版本](https://maven.apache.org/download.cgi)。 您可以選擇二進制版本或完整版本(也可以包含源代碼和文檔)。 我建議下載二進制文件,因為無論如何您都可以在線找到所有源代碼和文檔。

如果您不希望包含源文件和文檔,請選擇二進制版本。 當您單擊鏈接時,它將自動開始下載 zip 文件。 如果仍然無法刷新頁面,請重試。
下載完成后,將存檔解壓縮到 C,最好在 C 中創建一個名為 Maven 的文件夾,然后將文件解壓縮到其中。

創建 Maven 文件夾后,將文件從下載的 zip 文件解壓縮到該文件夾??中。

現在我們必須設置`M2_HOME`。 在能夠運行 Maven 之前,我們需要在環境變量中進行設置并將`bin`添加到`PATH`。
**添加`M2_HOME`**
1. 右鍵單擊此 PC 上的某個位置
1. 選擇屬性
2. 在右側,選擇高級系統設置

3. 之后,單擊“環境變量…”

4. 在“系統變量”下,選擇“新建…”

5. 輸入框打開時,鍵入`M2_HOME`作為變量名和 Maven 的路徑

6. 在系統變量下,選擇“路徑”,然后單擊“編輯”。

7. 添加路徑`C:\Maven\apache-maven-3.6.1\bin`
**驗證安裝是否成功**
要知道安裝是否成功,請在 CMD 中鍵入以下內容:
```java
mvn --version
```
如果您得到以下信息:
```java
Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-04T20:00:29+01:00)
Maven home: C:\Maven\apache-maven-3.6.1\bin\..
Java version: 1.8.0_211, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk1.8.0_211\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
```
那你就好了
## Linux
要求:
* [Oracle JDK 11](https://www.javahelps.com/2017/09/install-oracle-jdk-9-on-linux.html)
1. 下載[`apache-maven-3.6.1-bin.tar.gz`](https://maven.apache.org/download.cgi)二進制文件(如果您不希望包含源代碼和文檔)。
2. 在終端中輸入`cd /opt`
3. 將 apache-maven 存檔解壓縮到`opt`目錄中:`sudo tar -xvzf ~/Downloads/apache-maven-3.6.0-bin.tar.gz`
4. 添加為環境變量:`M2_HOME="/opt/apache-maven-3.6.0"`并將`bin`目錄附加到`Path`變量:`/opt/apache-maven-3.6.0/bin`
5. 更新`mvn`命令:
1. `sudo update-alternatives --install "/usr/bin/mvn" "mvn" "/opt/apache-maven-3.6.0/bin/mvn" 0`
2. ``sudo update-alternatives --set mvn /opt/apache-maven-3.6.0/bin/mvn``
6. 將 bash 完成添加到`mvn`:`sudo wget https://raw.github.com/dimaj/maven-bash-completion/master/bash_completion.bash --output-document /etc/bash_completion.d/mvn`。 這將使您可以通過單擊 Tab 兩次來完成 Maven 命令。
7. 鍵入`mvn –version`以驗證其是否有效
## MAC
1. 打開終端并轉到提取文件的目錄并以超級用戶身份登錄
2. 通過鍵入刪除`tar.gz`存檔。`rm Downloads/apache-maven*bin.tar.gz`
3. 修復權限:`chown -R root:wheel Downloads/apache-maven*`
4. 切換 Maven 內容:`mv Downloads/apache-maven* /opt/apache-maven`
5. 存檔管理會話:`exit`
6. 將 Maven 二進制文件添加到路徑,然后追加:
1. `nano $HOME/.profile`
2. `export PATH=$PATH:/opt/apache-maven/bin`
7. `Ctrl + x`保存并退出`nano`
8. 要加載新設置,請執行 bash
9. 要測試安裝是否成功,請鍵入`mvn -version`
- JavaTutorialNetwork 中文系列教程
- Java 基礎
- Java 概述
- 在 Ubuntu 上安裝 Java 8 JDK
- Java Eclipse 教程
- Eclipse 快捷方式
- 簡單的 Java 示例
- Java 基本類型
- Java 循環
- Java 數組
- Java 讀取文件示例
- Java 對象和類教程
- 什么是面向對象編程(OOP)
- Java 封裝示例
- Java 接口示例
- Java 繼承示例
- Java 抽象示例
- Java 多態示例
- Java 中的方法重載與方法覆蓋
- Java 控制流語句
- Java 核心
- 如何在 Windows,Linux 和 Mac 上安裝 Maven
- 如何使用 Maven 配置文件
- 如何將自定義庫包含到 Maven 本地存儲庫中
- 如何使用 JUnit 進行單元測試
- 如何使用 Maven 運行 JUnit 測試
- 如何在 Java 中使用 Maven 創建子模塊
- 如何使用 Maven 創建 Java JAR 文件
- 如何使用 Maven 創建 Java WAR 文件
- JVM 解釋
- Java 內存模型解釋示例
- 捕獲 Java 堆轉儲的前 3 種方法
- Java 垃圾收集
- Java 互斥量示例
- Java 信號量示例
- Java 并行流示例
- Java 線程同步
- Java 線程池示例
- Java ThreadLocal示例
- Java 中的活鎖和死鎖
- Java Future示例
- Java equals()方法示例
- Java Lambda 表達式教程
- Java Optional示例
- Java 11 HTTP 客戶端示例
- Java 類加載器介紹
- Java 枚舉示例
- Java hashCode()方法示例
- 如何測試獨立的 Java 應用程序
- SWING JFrame基礎知識,如何創建JFrame
- Java SWING JFrame布局示例
- 在JFrame上顯示文本和圖形
- 與JFrame交互 – 按鈕,監聽器和文本區域
- 如何使用 Maven 創建 Java JAR 文件
- Java Collection新手指南
- 選擇合適的 Java 集合
- Java ArrayList示例
- Java LinkedList示例
- Java HashSet示例
- Java TreeSet示例
- Java LinkedHashSet示例
- Java EnumSet示例
- Java ConcurrentHashSet示例
- Java HashMap示例
- Java LinkedHashMap示例
- Java TreeMap示例
- Java EnumMap示例
- Java WeakHashMap示例
- Java IdentityHashMap示例
- Java SortedMap示例
- Java ConcurrentMap示例
- Java Hashtable示例
- Java 中ArrayList和LinkedList之間的區別
- Java HashMap迭代示例
- Java HashMap內聯初始化
- Java 中HashMap和TreeMap之間的區別
- Java 圖示例
- Java 深度優先搜索示例
- Java 廣度優先搜索示例
- 不同的算法時間復雜度
- Java 序列化示例
- Java 反射示例
- Java 中的弱引用
- Java 8 日期時間 API
- Java 基本正則表達式
- 使用 Java 檢索可用磁盤空間
- Java 生成 MD5 哈希和
- Java 增加內存
- Java 屬性文件示例
- 如何在 Eclipse 上安裝 Java 9 Beta
- Java 9 JShell 示例
- Java 9 不可變列表示例
- Java 9 不可變集示例
- Java 9 不可變映射示例
- Java 單例設計模式示例
- Java 代理設計模式示例
- Java 觀察者設計模式示例
- Java 工廠設計模式
- Java 構建器設計模式
- Java 比較器示例
- Java 發送電子郵件示例
- Java volatile示例
- Java Docker 和 Docker 容器簡介
- 安裝和配置 MySQL 數據庫和服務器以供 Spring 使用
- 如何在 Java 中使用 MySQL 連接器
- 如何使用 Eclipse 調試 Java
- Java EE
- 如何在 Windows 10 中設置JAVA_HOME
- JavaBeans 及其組件簡介
- 如何安裝和配置 Tomcat 8
- 如何在 Tomcat 中部署和取消部署應用程序
- 從 Eclipse 運行 Tomcat
- Java Servlet 示例
- Java Servlet POST 示例
- Servlet 請求信息示例
- Servlet 注解示例
- 使用初始化參數配置 Java Web 應用程序
- Java Servlet 文件上傳
- Java JSP 示例
- Glassfish 啟用安全管理
- 如何使用 MySQL 配置 Glassfish 4
- Java 文件上傳 REST 服務
- Glassfish 和 Jetty 的 Java WebSockets 教程
- 基于 Glassfish 表單的身份驗證示例
- 如何使用 Java EE 和 Angular 構建單頁應用程序
- Spring
- 在 Eclipse 中安裝 Spring STS
- 使用 STS 創建簡單的 Spring Web App
- Spring Web Framework 簡介
- Java Docker 和 Docker 容器簡介
- 在 Spring 中實現控制器
- Spring 中的PathVariable注解
- Spring 中的RequestBody注解
- Spring 中的RequestParam注解
- Spring 攔截器
- Spring IOC
- Java Spring IoC 容器示例
- Spring 中的DispatcherServlet
- Spring 示例中的依賴注入
- 實現 Spring MVC 控制器
- Spring ORM 簡介
- 什么是 DAO 以及如何使用它
- 如何對 DAO 組件進行單元測試
- 如何對控制器和服務執行單元測試
- 安裝和配置 MySQL 數據庫和服務器以供 Spring 使用
- 如何在 Spring 中處理登錄身份驗證
- Spring Security 簡介及其設置
- 如何使用 Spring 創建 RESTful Web 服務
- Spring CSRF 保護
- Spring 中基于 OAuth2 的身份驗證和授權
- Spring Boot 簡介
- Spring MVC 框架介紹
- Spring JDBC 簡介
- 如何 docker 化 Spring 應用程序
- Spring 的@Autowired注解
- Spring AOP 中的核心概念和建議類型
- Sping Bean 簡介
- 如何在 Java 中使用 MySQL 連接器
- 安卓
- 安裝和配置 Android Studio
- 將 Android 設備連接到 Android Studio
- Android 簡介,活動,意圖,服務,布局
- 創建一個簡單的 Android 應用
- 運行和調試 Android 應用程序
- 在虛擬設備上運行 Android 應用程序
- Android 活動示例
- Android 意圖示例
- Android 服務示例
- Android 線性布局示例
- Android 相對布局示例
- Android Web 視圖示例
- Android 列表視圖示例
- Android 網格視圖示例
- 帶有ListAdapter的 Android ListView示例
- Android SQLite 數據庫介紹
- Android SQLite 數據庫示例
- Android 動畫教程
- Android 中的通知
- Android 中的事件處理
- 如何在 Android 中發送帶有附件的電子郵件
- 雜項
- 選擇您的 JAVA IDE:Eclipse,NetBeans 和 IntelliJ IDEA
- Java S3 示例
- 如何在 Ubuntu 上為多個站點配置 Apache
- 如何在 Liferay DXP 中替代現成的(OOTB)模塊
- 簡單的 Git 教程
- 使用 Java 捕獲網絡數據包
- Selenium Java 教程
- 使用特定工作區運行 Eclipse
- 在 Eclipse 中安裝 SVN
- 如何運行 NodeJS 服務器
- SQL 內連接示例
- SQL 左連接示例
- SQL 右連接示例
- SQL 外連接示例
- 樹莓派
- Raspberry Pi 3 規格
- 將 Raspbian 安裝到 SD 卡
- Raspberry Pi 首次啟動
- 遠程連接到 Raspberry Pi
- 建立 Raspberry Pi 遠程桌面連接
- Raspberry Pi Java 教程
- 使用 PWM 的 Raspberry Pi LED 亮度調節
- Raspberry Pi 控制電機速度
- Raspberry Pi 用 Java 控制直流電機的速度和方向