Maven 配置文件核心配置:本地倉庫、鏡像與 JDK 版本

Maven 配置文件核心配置:本地倉庫、鏡像與 JDK 版本

在 Maven 項目開發中,合理配置 settings.xml 文件能顯著提升依賴管理效率。本文將聚焦本地倉庫、鏡像加速和 JDK 版本這三個核心配置,結合 IDEA 環境詳細講解配置方法與作用。

一、Maven 配置文件簡介

Maven 的核心配置文件是 settings.xml,它負責管理 Maven 的全局行為,包括本地倉庫位置、遠程倉庫鏡像、JDK 版本等關鍵信息。

  • 默認位置
    • 全局配置:${MAVEN_HOME}/conf/settings.xml(影響所有項目)
    • 用戶配置:${user.dir}/.m2/settings.xml(僅影響當前用戶,優先級更高)
      其中 ${user.dir} 指 Windows 系統的用戶目錄(如 C:\Users\用戶名)。

二、配置本地倉庫

2.1 什么是本地倉庫?

本地倉庫是 Maven 存儲下載依賴的文件夾,默認路徑為 ${user.dir}/.m2/repository。當項目需要依賴時,Maven 會先從本地倉庫查找,若不存在則從遠程倉庫下載并緩存到本地。

2.2 為什么需要修改本地倉庫?

  • 默認路徑位于系統盤,可能占用大量空間;
  • 更換電腦或重裝系統時,可通過指定自定義路徑保留依賴,避免重復下載。

2.3 配置步驟

  1. 找到 settings.xml 文件(推薦修改全局配置:${MAVEN_HOME}/conf/settings.xml);
  2. <settings> 標簽內添加本地倉庫路徑配置:
    <!-- 本地倉庫路徑(自定義為 F 盤的 repository 文件夾) -->
    <localRepository>F://repository</localRepository>
    
  3. 保存文件后,Maven 會自動將后續下載的依賴存儲到該路徑。

三、配置鏡像加速

3.1 為什么需要鏡像?

Maven 中央倉庫位于國外,國內訪問速度較慢,甚至可能出現連接超時。通過配置國內鏡像(如阿里云),可將依賴下載請求轉發到國內服務器,大幅提升速度。

3.2 配置阿里云鏡像步驟

  1. settings.xml 中找到 <mirrors> 標簽(若不存在則手動添加);
  2. <mirrors> 內添加阿里云鏡像配置:
    <mirror> <id>nexus-aliyun</id> <!-- 鏡像唯一標識,自定義即可 --><mirrorOf>central</mirrorOf> <!-- 匹配中央倉庫,* 表示匹配所有倉庫 --><name>Nexus aliyun</name> <!-- 鏡像名稱,可選 --><url>http://maven.aliyun.com/nexus/content/groups/public</url> <!-- 阿里云鏡像地址 -->
    </mirror>
    
  3. 配置說明:
    • <mirrorOf>central</mirrorOf> 表示該鏡像代理 Maven 中央倉庫(central);
    • 若需要代理所有遠程倉庫,可將值改為 *

四、配置默認 JDK 版本

4.1 問題場景

Maven 項目默認使用 JDK 1.5 版本編譯,而實際開發中常使用 JDK 8、11 等更高版本。若不配置,可能導致語法兼容問題(如 Lambda 表達式無法識別)。

4.2 配置 JDK 11 步驟

  1. settings.xml 中找到 <profiles> 標簽;
  2. <profiles> 內添加 JDK 11 配置:
    <profile>  <id>jdk11</id> <!-- 配置唯一標識 --><activation>  <activeByDefault>true</activeByDefault> <!-- 默認激活該配置 --><jdk>11</jdk> <!-- 匹配 JDK 11 版本 --></activation>  <properties>  <!-- 指定編譯源碼和目標字節碼的 JDK 版本 --><maven.compiler.source>11</maven.compiler.source>  <maven.compiler.target>11</maven.compiler.target>  <maven.compiler.compilerVersion>11</maven.compiler.compilerVersion>  </properties>  
    </profile>
    
  3. 配置說明:
    • <activeByDefault>true</activeByDefault> 確保該配置默認生效;
    • 若使用 JDK 8,只需將上述配置中的 11 改為 1.8 即可。

五、總結

通過修改 settings.xml 文件,我們可以:

  1. 自定義本地倉庫路徑,節省系統盤空間并便于遷移;
  2. 配置阿里云鏡像,解決中央倉庫訪問慢的問題;
  3. 統一 JDK 版本,避免語法兼容問題。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/89473.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/89473.shtml
英文地址,請注明出處:http://en.pswp.cn/web/89473.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【時時三省】(C語言基礎)通過指針引用字符串

山不在高&#xff0c;有仙則名。水不在深&#xff0c;有龍則靈。 ----CSDN 時時三省如在printf函數中輸出一個字符串。這些字符串都是以直接形式&#xff08;字面形式&#xff09;給出的&#xff0c;在一對雙撇號中包含若干個合法的字符。使用字符串的更加靈活方便的方法——通…

【Linux驅動-快速回顧】一文快速理解GIC內部寄存器對中斷的控制

第一部分&#xff1a;GIC的功能和組成 1. GIC要解決的根本問題 在一個復雜的片上系統&#xff08;SoC&#xff09;中&#xff0c;有非常多的硬件模塊&#xff08;如定時器、串口、按鍵、DMA等&#xff09;&#xff0c;它們都需要在完成任務或遇到特定事件時通知CPU。同時&#…

【IoTDB 線上小課 17】開源 ≠ 免費,3 分鐘總結開源商用指南

【IoTDB 視頻小課】第十七期&#xff0c;解答你最關心的開源商業使用問題&#xff01;關于 IoTDB&#xff0c;關于物聯網&#xff0c;關于時序數據庫&#xff0c;關于開源...一個問題重點&#xff0c;3-5 分鐘&#xff0c;我們講給你聽&#xff1a;原來開源商業化有這么多規則開…

VUE項目學習筆記 v-for綁定數據,該數據異步獲取,同時需要對v-for的DOM節點進行js操作

問題描述&#xff1a;項目里有一個輪播圖&#xff0c;輪播圖的圖片數據從服務器獲取&#xff0c;用v-for生成DOM在頁面中顯示&#xff0c;輪播圖插件會通過new Swiper給DOM添加CSS、事件等&#xff0c;實現輪播效果。在這里存在操作順序問題&#xff1a;當服務器返回圖片數據后…

Science | 如何利用“T細胞+組蛋白乙酰化”兩大國自然熱點?T細胞耗竭機制與代謝-表觀遺傳調控的新范式

CD8?T細胞耗竭&#xff08;T cell exhaustion&#xff09;是腫瘤免疫治療的核心瓶頸&#xff0c;其表觀遺傳重塑機制&#xff08;如組蛋白修飾&#xff09;是當前國自然重點資助的前沿方向。耗竭T細胞&#xff08;TEX&#xff09;是指在慢性感染&#xff08;如持續性病毒感染&…

Logback 配置的利器:深入理解<property>與<variable>

在構建現代 Java 應用程序時&#xff0c;日志是不可或缺的一部分。一個健壯的日志系統不僅能幫助我們監控應用程序的運行狀態&#xff0c;還能在問題發生時提供關鍵的診斷信息。Logback 作為 SLF4J 的一個流行實現&#xff0c;以其高性能和靈活的配置而廣受開發者喜愛。 然而&a…

Java中excel字典轉換

? 背景說明EasyExcel 原生的 ExcelProperty 注解不支持 dictType&#xff08;不像那樣有 Excel(dictType"xxx")&#xff09;&#xff0c;所以如果你想實現字典翻譯功能&#xff0c;就需要自己實現 Converter 接口&#xff0c;比如 DictConvert。? 什么是 DictConve…

數據結構-3(雙向鏈表、循環鏈表、棧、隊列)

一、思維導圖二、雙向循環鏈表的判空、尾插、遍歷(反向)、尾刪class Node:def __init__(self, data):self.data dataself.next Noneself.prior Noneclass circularDoublyLinkedList():def __init__(self):self.head Noneself.tail Noneself.size 0def isEmpty(self):retu…

IDEA運行Tomcat一直提示端口被占用(也查不到該端口)

首先查看是否是因為Java程序異常終止&#xff0c;進程沒有完全釋放導致。打開資源管理器&#xff0c;找到所有的java.exe&#xff0c;強制結束任務。如果仍然不行&#xff0c;那就極可能還是開啟了hyper-V虛擬化&#xff0c;查看排除的tcp端口范圍端口號沒被占用卻提示占用&…

AWS Lambda 最佳實踐:構建高效無服務器應用的完整指南

引言 AWS Lambda 作為無服務器計算的核心服務,讓開發者能夠專注于業務邏輯而無需管理服務器。本文將通過實際案例和代碼示例,分享 Lambda 開發中的關鍵最佳實踐。 1. 函數設計原則 單一職責原則 每個 Lambda 函數應該只做一件事,這樣更容易測試、維護和擴展。 # ? 不推…

29、鴻蒙Harmony Next開發:深淺色適配和應用主題換膚

目錄 應用深淺色適配 應用跟隨系統的深淺色模式 應用主動設置深淺色模式 系統默認判斷規則 使用建議與限制 設置應用內主題換膚 概述 自定義主題色 設置應用內組件自定義主題色 設置應用局部頁面自定義主題風格 設置應用頁面局部深淺色 系統缺省token色值 應用深淺…

源鑒SCA4.9︱多模態SCA引擎重磅升級,開源風險深度治理能力再次進階

SCA技術已成為數字供應鏈開源治理的關鍵入口。源鑒SCA深度融合懸鏡原創專利級AI智能代碼疫苗技術&#xff0c;是國內首款集源碼組件成分分析、代碼成分溯源分析、制品成分二進制分析、容器鏡像成分掃描、運行時成分動態追蹤及開源供應鏈安全情報預警分析等六大核心引擎為一體的…

Git語義化提交規范及提交模板設置

Git語義化提交規范&#xff08;Conventional Commits&#xff09; &#x1f4da; 常見的語義化提交類型包括&#xff1a;類型含義說明feat? 新增功能&#xff08;feature&#xff09;fix&#x1f41b; 修復 bugdocs&#x1f4da; 修改文檔&#xff08;如 README&#xff09;st…

用TensorFlow進行邏輯回歸(五)

Softmax分類#List3-50%matplotlib inlineimport numpy as npimport tensorflow as tfimport matplotlib.pyplot as pltx1_label0 np.random.normal(1, 1, (100, 1))x2_label0 np.random.normal(1, 1, (100, 1))x1_label1 np.random.normal(5, 1, (100, 1))x2_label1 np.ran…

基于 Django + 協同過濾算法的電影推薦系統設計與實現

&#x1f3ac; 基于 Django 協同過濾算法的電影推薦系統設計與實現?? 本項目由成都理工大學宜賓校區的三位同學曾銘楊、楊皓麟、陳禧錦共同完成。項目以豆瓣電影數據為基礎&#xff0c;通過協同過濾算法為用戶構建個性化電影推薦服務&#xff0c;是一款集數據爬取、推薦算法…

小白全棧項目部署指南

小白全棧項目部署指南&#xff1a;前端后端數據庫完整攻略 &#x1f4d6; 寫在前面 當你學會了基礎的靜態網站部署后&#xff0c;是不是想挑戰更有趣的項目&#xff1f;比如一個能夠注冊登錄、保存數據的完整應用&#xff1f; 這就需要學習全棧項目部署了&#xff01; 別被&quo…

C# Linq 左關聯查詢詳解與實踐

在 C# 開發中&#xff0c;Linq&#xff08;Language Integrated Query&#xff09;提供了強大的數據查詢能力&#xff0c;尤其是在處理集合間的關聯操作時。本文將詳細解析 C# Linq 中的左關聯查詢&#xff0c;并通過實際案例說明其用法。左關聯查詢基礎左關聯&#xff08;Left…

【機器學習深度學習】LoRA 微調詳解:大模型時代的高效適配利器

目錄 前言 一、LoRA 的核心思想 二、LoRA 為什么高效&#xff1f; ? 1. 參數效率 ? 2. 內存友好 ? 3. 即插即用 三、LoRA 適用場景 四、LoRA 實踐建議 五、LoRA 和全參數微調對比 六、 LoRA的具體定位 &#x1f4cc; 總結 &#x1f517; 延伸閱讀 前言 在大模型…

vue頁面不銷毀的情況下再返回,總是執行created,而不觸發 activated

vue頁面不銷毀的情況下再返回&#xff0c;總是執行created&#xff0c;而不觸發 activated 原因&#xff1a; 沒有進行頁面緩存地址和頁面組件的name沒對上 解決方案: 組件只有在被 包裹時才會觸發 activated 和 deactivated 生命周期 如果沒有被緩存&#xff0c;每次進入路由…

從 C# 到 Python:6 天極速入門(第二天)

作為一名資深 C# 開發者&#xff0c;我們在第一天已經掌握了 Python 的基礎語法框架。今天我們將深入 Python 的特色語法與高級特性&#xff0c;通過實際項目開發場景的代碼對比&#xff0c;理解這些特性在真實業務中的應用價值。一、簡潔語法糖&#xff1a;項目開發中的實戰應…