什么是Maven以及如何配置Maven

在這里插入圖片描述

T04BF

👋專欄: 算法|JAVA|MySQL|C語言

🫵 今天你敲代碼了嗎

文章目錄

  • 1.Maven
    • 1.1什么是Maven
    • 1.2Maven的好處
    • 1.3使用idea創建一個Maven項目
    • 1.4Maven的核心功能
      • 1.4.1項目構建
    • 1.5Maven倉庫
      • 1.5.2 中央倉庫
      • 1.5.3 私有服務器(私服)
    • 1.6Maven設置國內源

1.Maven

1.1什么是Maven

官方對于Maven的描述:

Apache Maven is a software project management and comprehension tool.
Based on theconcept of a project object model (POM), Maven can manage
a project’s build, reporting anddocumentation from a central piece
ofinformation.
即Maven是一個項目管理工具。基于POM(project Object
Model,項目對象模型)的概念,Maven可以通過一小段描述信息來管理項目的構建,報告和文檔的項目管理工具

也就是說,Maven就是一個項目管理工具,通過pow.xml文件的配置獲取jar包,而不是之前的手動添加jar包

1.2Maven的好處

就是為了簡單,方便,提高開發效率,減少開發bug

1.3使用idea創建一個Maven項目

在這里插入圖片描述
在這里插入圖片描述

1.4Maven的核心功能

主要體現在兩個方面

1.4.1項目構建

Maven為我們提供了一套簡單命令來完成項目的構建
在這里插入圖片描述

就比如常見的打jar包操作,點擊package就能完成項目的打包操作
在這里插入圖片描述

1.4.2 依賴管理

依賴配置
使用Maven后,我我們不再手動添加jar包,而是通過pom.xml文件的配置獲取jar包,這里的jar包實際上就是依賴
就比如使用javaFx,我們需要手動將javaFX的包下載下來,添加到項目里面
在這里插入圖片描述

但是如果使用Maven,我們只需要在pom.xml中引入javaFx的依賴即可

<dependencies><!--里面添加項目的依賴坐標,可以是多個--></dependencies>

如果要添加javaFx依賴,那就是

<dependencies><!-- https://mvnrepository.com/artifact/org.openjfx/javafx-controls --><dependency><groupId>org.openjfx</groupId><artifactId>javafx-controls</artifactId><version>17.0.11</version></dependency><!-- https://mvnrepository.com/artifact/org.openjfx/javafx-graphics --><dependency><groupId>org.openjfx</groupId><artifactId>javafx-graphics</artifactId><version>17.0.11</version></dependency><!-- https://mvnrepository.com/artifact/org.openjfx/javafx-base --><dependency><groupId>org.openjfx</groupId><artifactId>javafx-base</artifactId><version>17.0.11</version></dependency><!-- https://mvnrepository.com/artifact/org.openjfx/javafx-fxml --><dependency><groupId>org.openjfx</groupId><artifactId>javafx-fxml</artifactId><version>17.0.11</version></dependency><!-- https://mvnrepository.com/artifact/org.openjfx/javafx-swing --><dependency><groupId>org.openjfx</groupId><artifactId>javafx-swing</artifactId><version>17.0.11</version></dependency><!-- https://mvnrepository.com/artifact/org.openjfx/javafx-web --><dependency><groupId>org.openjfx</groupId><artifactId>javafx-web</artifactId><version>17.0.11</version></dependency><!-- https://mvnrepository.com/artifact/org.openjfx/javafx-media --><dependency><groupId>org.openjfx</groupId><artifactId>javafx-media</artifactId><version>17.0.11</version></dependency>
</dependencies>

注意:對pow文件的任意改動都要點擊刷新按鈕,特別是引入新的jar包
在這里插入圖片描述

此時就能看到新加入的jar包
在這里插入圖片描述

依賴傳遞
在導入某些jar包的時候,可能某些jar包同時也引用了其他的jar包,那么就需要將所有的jar包都復制到項目底下
如果我們不使用Maven,那么就需要知道每個庫都依賴哪些庫,以及這些庫之間的關系是什么樣的,就比較復雜

但是如果使用Maven,就可以避免管理依賴之間的關系,只需要在pom文件中直接定義依賴即可,由于maven的依賴具有傳遞性,就會自動將這個依賴所依賴的其他jar包一起導入
在這里插入圖片描述
如圖所示,項目A通過Maven引入jarA時,就會自動引入jarB和jarC
此時jarA和項目B就是項目A的直接依賴
jarB和jarC是間接依賴

依賴排除
如上圖所示,如果項目A不需要jarB,也可以通過排除依賴的方式來實現
排除依賴即主動斷開依賴(被排除的資源無需指定版本)

<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>6.0.6</version><!--排除依賴--><exclusions><exclusion><artifactId>spring-jcl</artifactId><groupId>org.springframework</groupId></exclusion></exclusions></dependency>
</dependencies>

我們也可以通過插件更方便的解決這類問題
在這里插入圖片描述

在這里插入圖片描述

在這個頁面就可以直接排除依賴
在這里插入圖片描述

依賴調解
當項?中的依賴存在依賴沖突時
Maven會采?最短路徑優先的原則去選擇依賴

1.5Maven倉庫

前面講過,使用maven,我們只需要在pom文件里面,通過短短幾行代碼就能將依賴的jar包導進項目里面,那么是怎么做到的呢?

    <dependency><groupId>org.openjfx</groupId><artifactId>javafx-controls</artifactId><version>17.0.11</version></dependency>

這幾行代碼就稱為"坐標",是唯一的

實際上在Maven里,就是通過groupId,artifactId,version的配置,來唯一識別一個jar包,這三者缺一不可
當我們在pom?件中配置完依賴之后, 點擊刷新, Maven會根據坐標的配置, 去倉庫?尋找Jar包, 并把他 下載下來, 添加到項?中. 這個Jar包下載的地?就稱為倉庫.

Maven倉庫分為兩大類:本地倉庫和遠程倉庫
1.5.1 本地倉庫

是自己計算機上對應的一個目錄,首先會查找本地倉庫里面是否有對應的jar包
當項目中引入對應的依賴之后,首先會查找本地倉庫里面是否有讓對應的jar包
如果有的話就直接引用,沒有的話則去中央倉庫下載對應的jar包到本地倉庫

在這里插入圖片描述

本地倉庫地址可以通過Maven配置查看
在這里插入圖片描述

1.5.2 中央倉庫

中央倉庫: maven 軟件中內置?個遠程倉庫地址,就是中央倉庫,服務于整個互聯?. 由 Maven 團隊 維護,全球唯?.
倉庫地址:https://repo1.maven.org/maven2
可以通過https://mvnrepository.com 這個?站來查詢并下載

1.5.3 私有服務器(私服)

私服: ?般由公司團隊搭建的私有倉庫.
私服屬于某個公司,或者某個部?, 往往需要?定權限.
有了私服之后, Maven依賴下載的順序就發生了變化

在這里插入圖片描述

(1)先從本地倉庫獲取, 本地倉庫存在, 則直接返回
(2) 如果本地倉庫沒有, 就從私服請求, 私服存在該資源, 就直接返回
(3) 如果私服上不存在該資源,則從中央倉庫下載, 中央倉庫不存在, 就報錯了
(4) 如果中央倉庫中存在, 就先緩存在私服上之后,再緩存到本地倉庫?, 再為Maven的下載請求提供服務

1.6Maven設置國內源

因為中央倉庫在國外,因此訪問下載起來會比較慢,因此我們設置國內源
修改Maven的配置文件在本文資源直接下載即可

在這里插入圖片描述
將此文件覆蓋在此路徑

感謝您的訪問!!期待您的關注!!!

在這里插入圖片描述

T04BF

🫵 今天記得敲代碼

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

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

相關文章

[pytorch]常用函數(自用)

一、公共部分 1、torch.linespace 返回一維張量&#xff0c;在start和end之間&#xff08;包括start也包括end&#xff09;的均勻間隔的steps個點&#xff0c;長度為steps。 print(torch.linspace(1,10,3)) #輸出tensor([ 1.0000, 5.5000, 10.0000]) print(torch.linspace…

文本分類--NLP-AI(八)

文本分類任務 任務簡介1.字符數值化方式1方式2 2.池化&#xff08;pooling&#xff09;3.全連接層4.歸一化函數&#xff08;Sigmoid&#xff09;5.總結 從任務抽象新的技術點Embedding層池化層 任務簡介 任務介紹&#xff1a; 字符串分類&#xff0c;根據一句話的含媽量&#…

伊利25屆校招24年社招網申入職北森測評題庫全攻略!一文通!

伊利校招社招網申測評全攻略&#x1f680; 親愛的求職小伙伴們&#xff0c;今天我要分享一份伊利校招社招網申測評的全攻略&#xff0c;希望能助你們一臂之力&#xff01; 測評概覽 伊利的網申測評分為六個部分&#xff0c;總共約60分鐘的答題時間&#xff0c;涵蓋了言語邏輯、…

避免 WebSocket 連接被拒絕

一、檢查服務器配置和權限 (一)確認服務器訪問權限 確保您的客戶端有訪問服務器的合法權限。如果服務器設置了訪問控制列表(ACL)或僅允許特定的源(Origin)進行連接,您需要確保客戶端的請求來源在允許的范圍內。例如,如果服務器只允許來自特定域名的連接,而您的客戶端從…

【微信小程序開發】如何定義公共的js函數,其它頁面可以調用

在微信小程序開發中&#xff0c;可以通過以下步驟定義和使用公共的 JS 函數&#xff0c;使得其它頁面可以調用&#xff1a; 1. 創建一個公共的 JS 文件&#xff1a;在項目的 utils 目錄下創建一個 JS 文件&#xff0c;例如 utils/util.js。 2. 定義公共函數&#xff1a;在 uti…

在word中刪除endnote參考文獻之間的空行

如圖&#xff0c;在References中&#xff0c;每個文獻之間都有空行。不建議手動刪除。打開Endnote。 打開style manager 刪除layout中的換行符。保存&#xff0c;在word中更新參考文獻即可。

Python和C++全球導航衛星系統和機器人姿態觸覺感知二分圖算法

&#x1f3af;要點 &#x1f3af;馬爾可夫隨機場網格推理學習 | &#x1f3af;二維伊辛模型四連網格模型推理 | &#x1f3af;統計物理學模型擾動與最大乘積二值反卷積 | &#x1f3af;受限玻爾茲曼機擾動和最大乘積采樣 | &#x1f3af;視覺概率生成模型測試圖像 &#x1f3…

從課本上面開始學習的51單片機究竟有什么特點,在現在的市場上還有應用嗎?

引言 51單片機&#xff0c;作為一種經典的微控制器&#xff0c;被廣泛應用于各種嵌入式系統中。盡管如今ARM架構的高性能低成本單片機在市場上占據主導地位&#xff0c;但51單片機憑借其獨特的優勢依然在某些領域保持著應用價值。本文將深入探討51單片機的特點、架構、應用以及…

ubuntu22.04 安裝boost

下載boost壓縮包&#xff0c;我這里上傳了一份1_81_0版本tar -xzvf boost_1_81_0.tar.gzcd boost_1_81_0/sudo apt install build-essential g autotools-dev libicu-dev libbz2-dev -ysudo ./bootstrap.sh --prefix/usr/./b2sudo ./b2 install 上述7步完成后&#xff0c;相關…

數學建模·模糊評價法

模糊評價法 一種解決評價問題或者得出最佳方案的方法 主觀性仍比較強 具體定義 三集&#xff1a;因素集&#xff0c;評語集和權重集&#xff0c;通過模擬矩陣的處理得到最合理的評語 具體步驟 因素集 因素集的確定不難&#xff0c;難在對分級評價時&#xff0c;對因素集的分級…

LeetCode --- 134雙周賽

題目 3206. 交替組 I 3207. 與敵人戰斗后的最大分數 3208. 交替組 II 3209. 子數組按位與值為 K 的數目 一、交替組 I & II 題目中問環形數組中交替組的長度為3的子數組個數&#xff0c;主要的問題在于它是環形的&#xff0c;我們要考慮首尾相接的情況&#xff0c;如何…

阿里新開源GPU版本的FunASR安裝避坑

#當前安裝過程沒有cpu版本順利 1.個人在自己的電腦上安裝ubantu系統&#xff0c;以便使用本身的顯卡功能(本人顯卡NVIDIA GeForce RTX 4060)&#xff08;這里需要注意&#xff0c;更新里面有附加驅動安裝驅動會導致黑屏&#xff0c;小伙伴不要心急重裝系統&#xff0c;可以ctr…

ES索引模板

在Elasticsearch中&#xff0c;索引模板&#xff08;Index Templates&#xff09;是用來預定義新創建索引的設置和映射的一種機制。當你創建了一個索引模板&#xff0c;它會包含一系列的默認設置和映射規則&#xff0c;這些規則會在滿足一定條件的新索引被創建時自動應用。 索…

UOS查看系統信息命令行

UOS查看系統信息命令行 *** Rz整理 僅供參考 *** dmidecode查看System Boot信息 midecode -t 32 dmidecode查看System Reset信息 midecode -t 23 dmidecode查看機箱信息 midecode -t chassis dmidecode查看BIOS信息 midecode -t bios dmidecode查看CPU信息 dmidecode …

leetcode 404. 左葉子之和

給定二叉樹的根節點 root &#xff0c;返回所有左葉子之和。 示例 1&#xff1a; 輸入: root [3,9,20,null,null,15,7] 輸出: 24 解釋: 在這個二叉樹中&#xff0c;有兩個左葉子&#xff0c;分別是 9 和 15&#xff0c;所以返回 24示例 2: 輸入: root [1] 輸出: 0提示: 節點…

Linux 下使用Docker安裝redis

redis&#xff1a; 是一個高性能的&#xff0c;鍵值對的&#xff0c;將數據存儲到內存中的非關系型數據庫&#xff08;nosql數據庫 not only sql&#xff09; 高性能&#xff1a;數據存在內存中&#xff0c;直接訪問內存 鍵值對&#xff1a;新聞id&#xff08;鍵&#xff09…

c++數據結構--構造無向圖(算法6.1),深度和廣度遍歷

實驗內容&#xff1a; 實現教材算法6.2利用鄰接矩陣構造無向圖的算法&#xff0c;提供從鄰接矩陣獲得鄰接表的功能&#xff0c;在此基礎上進行深度優先遍歷和廣度優先遍歷。 實驗步驟&#xff1a; &#xff08;1&#xff09;按照實驗要求編寫代碼&#xff0c;構造無向圖。 ?…

淺談數學模型在UGC/AIGC游戲數值調參中的應用(AI智能體)

淺談數學模型在UGC/AIGC游戲數值調參中的應用 ygluu 盧益貴 關鍵詞&#xff1a;UGC、AIGC、AI智能體、大模型、數學模型、游戲數值調參、游戲策劃 一、前言 在策劃大大群提出《游戲工廠&#xff1a;AI&#xff08;AIGC/ChatGPT&#xff09;與流程式游戲開發》討論之后就已完…

Hi3861 OpenHarmony嵌入式應用入門--HTTPD

httpd 是 Apache HTTP Server 的守護進程名稱&#xff0c;Apache HTTP Server 是一種廣泛使用的開源網頁服務器軟件。 本項目是從LwIP中抽取的HTTP服務器代碼&#xff1b; Hi3861 SDK中已經包含了一份預編譯的lwip&#xff0c;但沒有開啟HTTP服務器功能&#xff08;靜態庫無法…

NiFi1.25版本HTTPS模式下RestAPI使用入門

Apache NiFi 是一個強大的數據流處理工具&#xff0c;通過其 REST API&#xff0c;用戶可以遠程管理和控制數據流處理器。本文將介紹如何使用 NiFi 1.25 版本HTTPS 模式下Rest API&#xff0c;包括獲取 token、獲取組件信息、啟動和停止組件、以及更改組件的調度頻率等操作。 …