Spring框架基本使用(Maven詳解)

前言:

? ? ? ? 當我們創建項目的時候,第一步少不了搭建環境的相關準備工作。

? ? ? ? 那么如果想讓我們的項目做起來方便快捷,應該引入更多的管理工具,幫我們管理。

? ? ? ? Maven的出現幫我們大大解決了管理的難題!!

Maven:

? ? ? ? Maven是什么?

????????官?對于Maven的描述:

Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.

翻譯過來就是:
??????? ?Maven是?個項?管理?具。基于POM(Project Object Model,項?對象模型)的概念,Maven可以通過??段描述信息來管理項?的構建,報告和?檔的項?管理?具軟件。

Maven提供的功能:?

? ? ? ? 1.項目構建 ? ? ??

? ? ? ? 2.管理依賴

項目構建:

????????Maven 提供了標準的,跨平臺(Linux, Windows, MacOS等)的?動化項?構建?式 當我們開發了?個項?之后, 代碼需要經過編譯, 測試, 打包, 發布等流程, 每次代碼的修改, 都需要經過這些流程, 如果代碼反復調試修改, 這個流程就需要反復進?, 就顯得特別?煩,, ?Maven 給我們提供了?套簡單的命令來完成項?的構建.

????????

例如:

? ? ? ? 可以通過package命令將所有.class文件打成jar包。

ar包是?種壓縮?件
jar包就是把開發?員已經寫好的?些代碼進?打包. 打好的jar包就可以引?到其他項?中, 也可以直接使?這些jar包中的類和屬性. 另外也可以打成可執?jar包, 這樣的包就可以通過java -jar命令來執?。

依賴管理:

? ? ? ? 上?說到, Maven是?個項?管理?具, 通過pom.xml?件的配置獲取jar包,?不??動去添加jar包獲取的jar包, 其實就是依賴.

pom.xml 就是maven 的配置?件,?以描述項?的各種信息

? ? ? ? ?依賴是什么?

? ? ? ? 指當前項目運行時所需要的jar包。

? ? ? ? 例如:

? ? ? ? 此時該項目中需要用到數據庫MySql,那么如何將數據的資源和該項目結合,此時就可以添加數據庫的相關依賴,方便我們在項目中直接調用數據庫等與數據庫相關的操作。

如果使?Maven, 我們只需要在pom.xml中引?mysql-connector-java的依賴就可以了:
格式如下:
< dependencies >
<!-- ??放置項?的依賴坐標 , 可為多個 -->
</ dependencies >
在pom文件的<dependencis>標簽內添加依賴坐標:
< dependency >
< groupId >mysql</ groupId >
< artifactId >mysql-connector-java</ artifactId >
< version >8.0.30</ version >
</ dependency >
之后刷新Maven:

依賴傳遞:

? ? ? ? 還是回到最初的話題,我們為什么在創建項目的時候使用Maven,是因為Maven帶給我們一些便利,如果我們手動的去添加管理依賴會出現一些難以避免的問題:

? ? ? ? 1.添加的依賴的版本對該項目是否能使用。

? ? ? ? 2.如果一個依賴中又依賴另外的依賴,那么此時對依賴的關聯性考慮不全面。

? ? ? ? 3.如果兩個或多個依賴同時又依賴同一個依賴,此時被依賴的對象的版本不一定同時適用于兩個或多個依賴,此時就會造成依賴沖突

但是如果此時引入Maven,它可以幫我們解決上述的幾個問題:

????????如上圖, 項?A 通過Maven 引?Jar A 時, 會?動引? Jar B 和Jar C.Jar A 和項?B就是項?A的直接依賴.Jar B, Jar C是間接依賴.

依賴排除:

? ? ? ? 當我們項目變得越來越復雜時,此時如果項?A不需要Jar B,也可以通過排除依賴的?式來實現。????????

排除依賴:
指主動斷開依賴的資源。(被排除的資源?需指定版本)?

Maven Help插件:

????????當項??較復雜時, 我們就會有Jar包沖突的問題, 這時候就需要去解決依賴沖突. 解決沖突之前, 需要先找到沖突, 我們可以使?Maven Help插件來觀察包和包之間的依賴關系。

? ? ? ? (插件就是對程序的?些特定場景, 做出?些特定的功能的擴展

安裝插件: File -> Settings ->Plugins -> 搜索'Maven Help' -> 找到對應插件, 點擊Install 安裝即可, 安裝后需要重啟下idea, 才能?效。

安裝之后, 打開pom?件, 可以看到Jar包之間的依賴關系:

Maven倉庫:

? ? ? ? 為什么通過幾行代碼,xml格式的代碼就可以將整個jar包引入呢?

? ? ? ? ?

這個代碼, 我們稱之為 "坐標", 也就是唯?的.
在Maven中, 根據 groupId、artifactId、version 的配置, 來唯?識別?個 jar 包, 缺?不可.當我們在pom?件中配置完依賴之后, 點擊刷新, Maven會根據坐標的配置, 去倉庫?尋找Jar包, 并把他下載下來, 添加到項?中. 這個Jar包下載的地?就稱為倉庫.
(倉庫:?于存儲資源,管理各種jar包)

? ? ? ?

Maven倉庫分為兩?類: 本地倉庫 遠程倉庫 .
其中遠程倉庫?分為 中央倉庫, 私服 和其他公共庫

本地倉庫:

????????本地倉庫: ??計算機上的?個?錄(?來存儲jar包) 當項?中引?對應依賴jar包后,?先會查找本地倉庫中是否有對應的jar包如果有,則在項?直接引?,如果沒有,則去中央倉庫中下載對應的jar包到本地倉庫。

本地倉庫地址可以通過Maven配置查看:
File -> Settings
查看該倉庫?錄, 可以看到該?錄下有很多的jar(最開始是空的, 隨著Maven的使?, 該倉庫下?件會越來越多)。

中央倉庫:

????????中央倉庫: maven 軟件中內置?個遠程倉庫地址,就是中央倉庫,服務于整個互聯?. 由 Maven 團隊維護,全球唯?.

倉庫地址: https://repo1.maven.org/maven2/
可以通過 https://mvnrepository.com 這個?站來查詢并下載
我們可以把??寫好的Jar包上傳到中央倉庫(具備?定的要求), 也可以從中央倉庫下載Jar包
查找Jar的坐標
1. 訪問 https://mvnrepository.com/
2. 進?查找, ?如mysql

?選擇添加jar包版本:

查看jar包坐標:

將坐標添加到pom.xml文件中:

私有服務器:
?????????

私服: ?般由公司團隊搭建的私有倉庫.

私服屬于某個公司,或者某個部?, 往往需要?定權限.
有了私服之后, Maven依賴下載的順序?發?了變化

Maven設置國內源:

? ? ? ? 由于中央倉庫在國外部署,下載起來會比較慢,所以咱們選擇借助國內?些公開的遠程倉庫來下載資源接下來介紹如何設置國內源:

????????

setting.xml文件放下面了,需要的自取:

通過網盤分享的文件:settings.xml
鏈接: https://pan.baidu.com/s/1VLZrlVgShTSwQQVMVcNyzg?pwd=8888 提取碼: 8888?? ? ??

Maven 倉庫默認在國外 https://mvnrepository.com/ , 國內使?時會?較慢,我們可以更換為阿?云的倉庫
也可以選擇別的倉庫, 參考: Maven 鏡像地址?全
打開settings.xml, 在 mirrors 節點上,添加內容如下:
<mirror>
<id>aliyunmaven</id>
<mirrorOf>central</mirrorOf>
<name> 阿?云公共倉庫 </name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
以上分享的setting文件已經添加過了,可以直接使用!!

?

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

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

相關文章

用大內存主機下載Visual Studio

用一臺內存達到128G的主機下載Visual Studio 2022&#xff0c;用的是公司網絡。下載速度讓我吃了一驚&#xff0c;沒人用網絡了&#xff1f;還是網站提速了&#xff1f;以前最大只能達到5MB/秒。記錄這段經歷&#xff0c;是用來分析公司網絡用的......

Ubuntu20.04.2安裝Vmware tools

軟件版本&#xff1a;Vmware Workstation Pro 17.6.2 操作系統鏡像文件&#xff1a;ubuntu-20.04.2-desktop-amd64 方式1&#xff1a;用iso鏡像安裝 沒用這種方法&#xff0c;太麻煩 方式2&#xff1a;用apt安裝Open VM Tools 如果你使用的是較新的Ubuntu版本&#xff08;如…

Mac系統下使用Docker快速部署MaxKB:打造本地知識庫問答系統

隨著大語言模型的廣泛應用&#xff0c;知識庫問答系統逐漸成為提升工作效率和個人學習的有力工具。MaxKB是一款基于LLM&#xff08;Large Language Model&#xff09;大語言模型的知識庫問答系統&#xff0c;支持多模型對接、文檔上傳和自動爬取等功能。本文將詳細介紹如何在Ma…

2526考研資料分享 百度網盤

通過網盤分享的文件&#xff1a;01、2026【考研數學】 鏈接: https://pan.baidu.com/s/1N-TlXcCKMcX1U-KBr0Oejg?pwducbe 提取碼: ucbe 提取碼:98wg--來自百度網盤超級會員v3的分享 通過網盤分享的文件&#xff1a;01、2026【考研政治】 鏈接: https://pan.baidu.com/s/1N-T…

【信息系統項目管理師-案例真題】2013下半年案例分析答案和詳解

更多內容請見: 備考信息系統項目管理師-專欄介紹和目錄 文章目錄 試題一【問題? 1】(12 分)【問題? 2】(10 分)【問題 3】( 3 分 )試題二【問題? 1】(3? 分)【問題? 2】(10? 分)【問題? 3】(3? 分)【問題? 4】(9? 分)試題三【問題? 1】(12? 分)?【問題? 2】(8?…

idea連接gitee(使用idea遠程兼容gitee)

文章目錄 先登錄你的gitee拿到你的郵箱找到idea的設置選擇密碼方式登錄填寫你的郵箱和密碼登錄成功 先登錄你的gitee拿到你的郵箱 具體位置在gitee–>設置–>郵箱管理 找到idea的設置 選擇密碼方式登錄 填寫你的郵箱和密碼 登錄成功

UNIAPP開發之利用阿里RTC服務實現音視頻通話后端THINKPHP5

下面是一個使用ThinkPHP 5實現后端邏輯的示例。我們將創建一個簡單的ThinkPHP 5項目來處理生成推流和播流地址的請求。 后端部分&#xff08;ThinkPHP 5&#xff09; 1. 初始化ThinkPHP 5項目 首先&#xff0c;確保你已經安裝了Composer。然后使用Composer創建一個新的Think…

嵌入式開發崗位認識

目錄 1.核心定義2.崗位方向3.行業方向4.技術方向5.工作職責6.核心技能7.等級標準8.優勢與劣勢9.市場薪資10. 發展路徑11. 市場趨勢12. 技術趨勢 1.核心定義 嵌入式系統&#xff1a; 以應用為中心&#xff0c;以計算機技術為基礎&#xff0c;軟硬件可裁剪的專用計算機系統 特點…

圖解循環神經網絡(RNN)

目錄 1.循環神經網絡介紹 2.網絡結構 3.結構分類 4.模型工作原理 5.模型工作示例 6.總結 1.循環神經網絡介紹 RNN&#xff08;Recurrent Neural Network&#xff0c;循環神經網絡&#xff09;是一種專門用于處理序列數據的神經網絡結構。與傳統的神經網絡不同&#xff0c…

MySQL數據庫入門到大蛇尚硅谷宋紅康老師筆記 高級篇 part 2

第02章_MySQL的數據目錄 1. MySQL8的主要目錄結構 1.1 數據庫文件的存放路徑 MySQL數據庫文件的存放路徑&#xff1a;/var/lib/mysql/ MySQL服務器程序在啟動時會到文件系統的某個目錄下加載一些文件&#xff0c;之后在運行過程中產生的數據也都會存儲到這個目錄下的某些文件…

http 響應碼影響 video 標簽播放視頻

背景 使用后端給的文件下載接口地址實現視頻播放&#xff0c;但是 video 標簽一直無法播放視頻如下圖&#xff0c;把接口地址放到瀏覽器請求能直接下載。但就是不能播放 原因 http 響應碼不正確&#xff0c;返回201是無法播放視頻200可以如下圖 狀態碼的影響&#xff1a; 20…

OneNote手機/平板“更多筆記本”中有許多已經刪掉或改名的,如何刪除

問題描述&#xff1a; OneNote 在手機或平板上添加“更多筆記本”中&#xff0c;有許多已經刪掉或改名的筆記本&#xff01;如何刪除&#xff1f; OR&#xff1a;如何徹底刪除OneNote中的筆記本&#xff1f; 處理做法&#xff1a; 這個列表對應365里面的【最近打開】&#…

LeetCode--23. 合并 K 個升序鏈表【堆和分治】

23. 合并 K 個升序鏈表 給你一個鏈表數組&#xff0c;每個鏈表都已經按升序排列。 請你將所有鏈表合并到一個升序鏈表中&#xff0c;返回合并后的鏈表。 正文 這道題有多種解決方案 堆 比較容易&#xff0c;又比較直觀的就是堆排序&#xff0c;將每個節點加入最小根堆中&…

【 Avalonia UI 語言國際化 I18n】圖文結合教學,保姆級教學,語言國際化就是這么簡單(.Net C#)

完整項目地址 github : https://github.com/Crazy-GrowUp/AvaloniaI18nTest/tree/master gitee :https://gitee.com/jack_of_disco/avalonia-i18n-test 0.項目新建 Properties 文件夾 對應的項目配置文件里面就會增加 <Folder Include"Properties\" /> 1.項…

點擊el-dialog彈框跳到其他頁面瀏覽器的滾動條消失了多了 el-popup-parent--hidden

點擊el-dialog彈框跳到其他頁面瀏覽器的滾動條消失了 在使用 el-dialog 彈框時&#xff0c;Element Plus 會在彈框打開時自動給 body 添加 el-popup-parent–hidden 類&#xff0c;以隱藏滾動條。如果在跳轉到其他頁面時滾動條沒有恢復&#xff0c;可能是因為 el-dialog 沒有正…

JWT認證機制

Session認證機制中需要配合cookie才能實現&#xff0c;由于cookie默認不支持跨域訪問&#xff0c;當涉及到前端跨域請求后端接口時&#xff0c;需要做很多額外的配置&#xff0c;才能實現跨域session認證。所以這里不推薦使用session身份認證機制&#xff0c;一般推薦使用jwt認…

netcore 啟用gzip壓縮及緩存

public void ConfigureServices(IServiceCollection services) {....// 配置gzip 與 br的壓縮等級為最優services.Configure<BrotliCompressionProviderOptions>(options > {options.Level CompressionLevel.Optimal;});services.Configure<GzipCompressionProvid…

qt:常見標簽操作,倒計時功能,進度條與日歷

1.標簽常見函數 函數功能void setext(const QString &text)設置文本QString text()const獲取文本void setPixmap(const QPixmap)與Pixmap()const設置和獲取圖像void setAlignment(Qt::Alignment alignment)設置對齊&#xff08;獲取和上面一樣&#xff09;void setWordWr…

STM32MP157A單片機移植Linux驅動

在stm32mp157a單片機移植Linux操作系統&#xff0c;并移植內核驅動&#xff0c;在應用程序中使用3個線程&#xff0c;分別實現控制單片機上3個led流水燈的功能、蜂鳴器控制的功能、風扇控制的功能。 需求整理&#xff1a; 1.驅動程序-->led1.c&#xff0c;led2.c&#xff…

python中格式化輸出知識點匯總

在Python中&#xff0c;格式化輸出是一種常見的操作&#xff0c;用于將數據以特定的格式展示。以下是Python中格式化輸出的主要方法&#xff1a; ### 1. 使用 % 操作符 這是Python早期版本中常用的格式化方法&#xff0c;類似于C語言中的printf。 - **基本語法**&#xff1a;&…