Maven框架SpringBootWeb簡單入門

一、Maven

★ Maven:是Apache旗下的一個開源項目,是一款用于管理和構建java項目的工具。   官網:https://maven.apache.org/
★ Maven的作用:   1. 依賴管理:方便快捷的管理項目依賴的資源(jar包),避免版本沖突問題。   2. 統一項目結構:提供標準、統一的項目結構。       具體的統一結構:       - src/main/java: java源代碼目錄       - src/main/resources:  配置文件信息       - src/test/java: 測試代碼       - src/test/resources: 測試配置文件信息   3. 項目構建:maven提供了標準的、跨平臺(Linux、Windows、MacOS) 的自動化項目構建方式。★ Maven模型:     * 項目對象模型 (Project Object Model)     * 依賴管理模型(Dependency)     * 構建生命周期/階段(Build lifecycle & phases)      

1、配置Maven倉庫

倉庫:用于存儲資源,管理各種jar包,本質就是一個目錄(文件夾),這個目錄被用來存儲開發中所有依賴(就是jar包)和插件。   Maven倉庫分為:
- 本地倉庫:自己計算機上的一個目錄(用來存儲jar包)
- 中央倉庫:由Maven團隊維護的全球唯一的。倉庫地址:https://repo1.maven.org/maven2/
- 遠程倉庫(私服):一般由公司團隊搭建的私有倉庫
jar包的查找順序則變為: 本地倉庫 --> 遠程倉庫(如果有)--> 中央倉庫Maven安裝:    下載地址:https://maven.apache.org/download.cgi
1、解壓 apache-maven-3.6.1-bin.zip(解壓即安裝)建議解壓到沒有中文、特殊字符的路徑下。
* bin目錄 : 存放的是可執行命令。(mvn 命令重點關注)
* conf目錄 :存放Maven的配置文件。(settings.xml配置文件后期需要修改)
* lib目錄 :存放Maven依賴的jar包。(Maven也是使用java開發的,所以它也依賴其他的jar包)
2、配置本地倉庫  2.1、在自己計算機上新一個目錄(本地倉庫,用來存儲jar包)  2.2、進入到conf目錄下修改settings.xml配置文件        1). 使用超級記事本軟件,打開settings.xml文件,定位到53行       2). 復制<localRepository>標簽,粘貼到注釋的外面(55行)       3). 復制之前新建的用來存儲jar包的路徑,替換掉<localRepository>標簽體內容
3、配置阿里云私服   由于中央倉庫在國外,所以下載jar包速度可能比較慢,進入到conf目錄下修改settings.xml配置文件:    1). 使用超級記事本軟件,打開settings.xml文件,定位到160行左右。    2). 在<mirrors>標簽下為其添加子標簽<mirror>,內容如下:   
<mirror>     <id>alimaven</id>     <name>aliyun maven</name>     <url>http://maven.aliyun.com/nexus/content/groups/public/</url>   <mirrorOf>central</mirrorOf>          
</mirror>
注意配置的位置,在<mirrors> ... </mirrors> 中間添加配置。
注: 只可配置一個<mirror>(另一個要注釋!) ,不然兩個可能發生沖突,導致jar包無法下載!!!!!!!
4、配置環境變量     Maven環境變量的配置類似于JDK環境變量配置一樣   1). 在系統變量處新建一個變量MAVEN_HOME   MAVEN_HOME環境變量的值,設置為maven的解壓安裝目錄。   2). 在Path中進行配置   PATH環境變量的值,設置為:%MAVEN_HOME%\bin   3). 打開DOS命令提示符進行驗證,出現如圖所示表示安裝成功   mvn -v
5.配置jdk版本

2、配置Maven集成環境

一、當前工程設置:
1、選擇 IDEA中 File  =>  Settings  =>  Build,Execution,Deployment  =>  Build Tools  =>  Maven
2、設置IDEA使用本地安裝的Maven,并修改配置文件及本地倉庫路徑。   Maven home path :指定當前Maven的安裝目錄   User settings file :指定當前Maven的settings.xml配置文件的存放路徑   Local repository :指定Maven的本地倉庫的路徑 (如果指定了settings.xml, 這個目錄會自動讀取出來, 可以不用手動指定)
3、配置工程的編譯版本為11
- Maven默認使用的編譯版本為5(版本過低)
上述配置的maven環境,只是針對于當前工程的,如果我們再創建一個project,又恢復成默認的配置了。
二、全局設置    1、進入到IDEA歡迎頁面 - 選擇 IDEA中 File  =>  close project   2、打開 All settings , 選擇 Build,Execution,Deployment  =>  Build Tools  =>  Maven   3、配置工程的編譯版本為11   這里所設置的maven的環境信息,并未指定任何一個project,此時設置的信息就屬于全局配置信息。 以后,我們再創建project,默認就是使用我們全局配置的信息。

3、創建Maven項目

1、創建一個空項目 
2、創建模塊,選擇Maven,點擊Next
3、填寫模塊名稱,坐標信息,點擊finish,創建完成
4、在Maven工程下,創建HelloWorld類   
maven-project01|---  src  (源代碼目錄和測試代碼目錄)   |---  main (源代碼目錄)          |--- java (源代碼java文件目錄)          |--- resources (源代碼配置文件目錄)   |---  test (測試代碼目錄)          |--- java (測試代碼java目錄)          |--- resources (測試代碼配置文件目錄)|--- target (編譯、打包生成文件存放目錄)
5、編寫 HelloWorld,并運行public class HelloWorld {   public static void main(String[] args) {       System.out.println("Hello Maven ...");   }
}   

4、Maven核心配置文件

POM (Project Object Model) :指的是項目對象模型,用來描述當前的maven項目。
- 使用pom.xml文件來實現
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">   <!-- POM模型版本 -->   <modelVersion>4.0.0</modelVersion>
?   <!-- 當前項目坐標 -->   <groupId>com.itheima</groupId>   <artifactId>maven_project1</artifactId>   <version>1.0-SNAPSHOT</version>      <!-- 打包方式 -->   <packaging>jar</packaging></project>             
pom文件詳解:
- <project> :pom文件的根標簽,表示當前maven項目
- <modelVersion> :聲明項目描述遵循哪一個POM模型版本 - 雖然模型本身的版本很少改變,但它仍然是必不可少的。目前POM模型版本是4.0.0
- 坐標 :<groupId>、<artifactId>、<version> - 定位項目在本地倉庫中的位置,由以上三個標簽組成一個坐標
- <packaging> :maven項目的打包方式,通常設置為jar或war(默認值:jar)
?
Maven坐標:使用坐標來定義項目或引入項目中需要的依賴    Maven坐標主要組成    * groupId:定義當前Maven項目隸屬組織名稱(通常是域名反寫,例如:com.itheima)    * artifactId:定義當前Maven項目名稱(通常是模塊名稱,例如 order-service、goods-service)    * version:定義當前項目版本號      
**注意:
* 上面所說的資源可以是插件、依賴、當前項目。
* 我們的項目如果被其他的項目依賴時,也是需要坐標來引入的。

5、導入Maven項目

- 方式1:使用Maven面板,快速導入項目
打開IDEA,選擇右側Maven面板,點擊 + 號,選中對應項目的pom.xml文件,雙擊即可。
說明:如果沒有Maven面板,選擇 View  =>  Appearance  =>  Tool Window Bars   
- 方式2:使用idea導入模塊項目
File  =>  Project Structure  =>  Modules  =>  +  =>  Import Module   找到要導入工程的pom.xml

6、依賴配置

依賴:指當前項目運行所需要的jar包。一個項目中可以引入多個依賴:   在maven工程的pom.xml文件中,引入logback的依賴。
1. 在pom.xml中編寫<dependencies>標簽
2. 在<dependencies>標簽中使用<dependency>引入坐標
3. 定義坐標的 groupId、artifactId、version   點擊刷新按鈕,引入最新加入的坐標
?
- 刷新依賴:保證每一次引入新的依賴,或者修改現有的依賴配置,都可以加入最新的坐標。
注意事項:
1. 如果引入的依賴,在本地倉庫中不存在,將會連接遠程倉庫 / 中央倉庫,然后下載依賴(這個過程會比較耗時,耐心等待)
2. 如果不知道依賴的坐標信息,可以到mvn的中央倉庫(https://mvnrepository.com/)中搜索
?
**添加依賴的幾種方式:**
1. 利用中央倉庫搜索的依賴坐標
2. 利用IDEA工具搜索依賴
3. 熟練上手maven后,快速導入依賴   
依賴具有傳遞性:   由于logback-classic又依賴了logback-core和slf4j,所以必須把這3個jar包全部復制到項目工程下。   使用maven,當項目中需要使用logback-classic時,只需要在pom.xml配置文件中,添加logback-classic的依賴坐標即可。由于maven的依賴具有傳遞性,所以會自動把所依賴的其他jar包也一起導入。   
依賴傳遞可以分為:
1. 直接依賴:在當前項目中通過依賴配置建立的依賴關系
2. 間接依賴:被依賴的資源如果依賴其他資源,當前項目間接依賴其他資源
?
排除依賴:   排除依賴:指主動斷開依賴的資源。(被排除的資源無需指定版本)   maven-projectA依賴了maven-projectB,maven-projectB依賴了Junit。基于依賴的傳遞性,所以maven-projectA也依賴了Junit       
依賴范圍:    在項目中導入依賴的jar包后,默認情況下,可以在任何地方使用。    可以通過<scope>標簽設置其作用范圍。    作用范圍:       1. 主程序范圍有效(main文件夾范圍內)       2. 測試程序范圍有效(test文件夾范圍內)       3. 是否參與打包運行(package指令范圍內)
scope主程序測試程序打包(運行)范例
compile(默認)YYYlog4j
test-Y-junit
providedYY-servlet-api
runtime-YYjdbc驅動

7、生命周期

Maven的生命周期就是為了對所有的構建過程進行抽象和統一。 描述了一次項目構建,經歷哪些階段。具體指的是項目的生命周期。
生命周期包含了項目的清理,初始化,編譯,測試,打包,集成測試,驗證,部署和站點生成等構建步驟。   Maven對項目構建的生命周期劃分為3套(相互獨立):   - clean:清理工作。   - default:核心工作。如:編譯、測試、打包、安裝、部署等。   - site:生成報告、發布站點等。
主要關注以下幾個:
? clean:移除上一次構建生成的文件
? compile:編譯項目源代碼
? test:使用合適的單元測試框架運行測試(junit)
? package:將編譯后的文件打包,如:jar、war等
? install:安裝項目到本地倉庫
Maven的生命周期是抽象的,在Maven的設計中,實際任務(如源代碼編譯)都交由插件來完成。   
生命周期的順序是:clean --> validate --> compile --> test --> package --> verify --> install --> site --> deploy 
?
需要關注的是:clean -->  compile --> test --> package  --> install 
執行指定的生命周期有兩種執行方式:   1. 在idea工具右側的maven工具欄中,選擇對應的生命周期,雙擊執行   2. 在DOS命令行中,通過maven命令執行:在項目目錄下打開cmd窗口。執行"mvn "+命令   
更新依賴索引:   有時候給idea配置完maven倉庫信息后,在idea中依然搜索不到倉庫中的jar包。    打開設置----搜索maven----Repositories----選中本地倉庫-----點擊Update   初始情況下,我們的本地倉庫是沒有任何jar包的,此時會從私服去下載(如果沒有配置,就直接從中央倉庫去下載),可能由于網絡的原因,jar包下載不完全,這些不完整的jar包都是以lastUpdated結尾。此時,maven不會再重新幫你下載,需要你刪除這些以

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

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

相關文章

LightDB 23.3 plorasql 函數支持inout參數輸出

開篇立意 oracle PLSQL函數中返回值有兩種情況&#xff1a; &#xff08;1&#xff09;使用return返回值&#xff1b; &#xff08;2&#xff09;使用out修飾的參數&#xff08;oracle不支持inout&#xff09; SQL> create function yu(id inout int) return int asbeginn…

【C# 基礎精講】文件讀取和寫入

文件讀取和寫入是計算機程序中常見的操作&#xff0c;用于從文件中讀取數據或將數據寫入文件。在C#中&#xff0c;使用System.IO命名空間中的類來進行文件讀寫操作。本文將詳細介紹如何在C#中進行文件讀取和寫入&#xff0c;包括讀取文本文件、寫入文本文件、讀取二進制文件和寫…

選擇大型語言模型自定義技術

推薦&#xff1a;使用 NSDT場景編輯器 助你快速搭建可二次編輯器的3D應用場景 企業需要自定義模型來根據其特定用例和領域知識定制語言處理功能。自定義LLM使企業能夠在特定的行業或組織環境中更高效&#xff0c;更準確地生成和理解文本。 自定義模型使企業能夠創建符合其品牌…

PAT 1013 Battle Over Cities

個人學習記錄&#xff0c;代碼難免不盡人意。 It is vitally important to have all the cities connected by highways in a war. If a city is occupied by the enemy, all the highways from/toward that city are closed. We must know immediately if we need to repair a…

計算機機房的管理

1 電源問題 不穩定的電源對電腦的使用壽命是一個極大的威脅&#xff0c;特別是對于機房來說危害 性更大。為此&#xff0c;學校要添置必要的穩壓器&#xff0c;設置其正常供電的電壓為 220 伏、電流 為 l6 安對電腦室供電。如有電壓發生偏差&#xff0c;要及時檢查供電情況&…

BDA初級分析——認識SQL,認識基礎語法

一、認識SQL SQL作為實用技能&#xff0c;熱度高、應用廣泛 在對數據分析人員的調查中SQL長期作為熱度排名第-一的編程語言超過Python和R SQL&#xff1a;易學易用&#xff0c;高效強大的語言 SQL&#xff1a;Structured Query Language 結構化查詢語言 SQL&#xff1a;易學…

python threading.Event()用法

紅綠燈例子 Event的用法 import threading,timeeventthreading.Event()def lighter():timesec0event.set()while True:if 5<timesec<10:event.clear()print("紅燈亮")elif timesec>10:event.set()timesec0else:print("綠燈亮")time.sleep(1)tim…

BSN“五、十、百”工程實施半年成果豐碩,助力數字化轉型和高質量發展

為推動“云網鏈”融合的新基建賦能數字經濟高質量發展&#xff0c;將區塊鏈服務網絡&#xff08;BSN&#xff09;打造成為中國數字經濟和社會治理的核心區塊鏈公共服務平臺&#xff0c;2023年2月&#xff0c;在“第三屆區塊鏈服務網絡&#xff08;BSN&#xff09;全球合作伙伴大…

力扣75——二分查找

總結leetcode75中的二分查找算法題解題思路。 上一篇&#xff1a;力扣75——堆/優先隊列 力扣75——二分查找 1 猜數字大小2 咒語和藥水的成功對數3 尋找峰值4 愛吃香蕉的珂珂1-4解題總結 1 猜數字大小 題目&#xff1a; 猜數字游戲的規則如下&#xff1a;每輪游戲&#xff0…

多維時序 | MATLAB實現WOA-CNN-BiGRU-Attention多變量時間序列預測

多維時序 | MATLAB實現WOA-CNN-BiGRU-Attention多變量時間序列預測 目錄 多維時序 | MATLAB實現WOA-CNN-BiGRU-Attention多變量時間序列預測預測效果基本介紹模型描述程序設計參考資料 預測效果 基本介紹 多維時序 | MATLAB實現WOA-CNN-BiGRU-Attention多變量時間序列預測 1.程…

java 向上取整 java對小數取整

取整方法 Math.floor(double a) 向下取整 Math.ceil(double a) 向上取整 Math.round(double a) 四舍五入 0.5向下取整 Math.rint(double a) 就近取整 1.6接近2&#xff0c;所以就取2 1.4接近1&#xff0c;所以就取1 1.5跟1和2都很接近&#xff0c;這時候就取偶數 (int) 類型強轉…

MongoDB:數據庫初步應用

一.連接MongoDB 1.MongoDBCompass連接數據庫 連接路徑:mongodb://用戶名:密碼localhost:27017/ 2.創建數據庫(集合) MongoDB中數據庫被稱為集合. MongoDBCompass連接后,點擊紅色框加號創建集合,點擊藍色框加號創建文檔(數據表) 文檔中的數據結構(相當于表中的列)設計不用管…

騰訊云國際輕量應用服務器使用流程是什么呢?

騰訊云國際輕量應用服務器怎么使用呢&#xff1f;下面一起來了解一下&#xff1a; 1. 熟悉輕量應用服務器基礎知識 ①什么是輕量應用服務器 TencentCloud Lighthouse&#xff1f; ②輕量應用服務器與云服務器 CVM 的區別是什么&#xff1f; ③為什么選擇輕量應用服務器&#xf…

一個DW的計算

一個DW的計算 1- 題目: 已知一個DW1.1 要求: 從DW中取出指定的位的值1.1.1 分析1.1.2 實現1.1.3 簡化實現1.1.4 驗證 2- 題目: 已知一個DW2.1 要求: 從DW中的指定的P和S,取出指定的位的值2.1.1 分析2.1.2 實現 1- 題目: 已知一個DW 有圖中所示一行信息&#xff0c;表示一個DW(…

常見的Web安全漏洞有哪些,Web安全漏洞常用測試方法介紹

Web安全漏洞是指在Web應用程序中存在的可能被攻擊者利用的漏洞&#xff0c;正確認識和了解這些漏洞對于Web應用程序的開發和測試至關重要。 一、常見的Web安全漏洞類型&#xff1a; 1、跨站腳本攻擊(Cross-Site Scripting&#xff0c;XSS)&#xff1a;攻擊者通過向Web頁面注入…

神經網絡基礎-神經網絡補充概念-41-梯度的數值逼近

概念 梯度的數值逼近是一種用于驗證梯度計算正確性的方法&#xff0c;它通過近似計算梯度來與解析計算的梯度進行比較。雖然數值逼近在實際訓練中不常用&#xff0c;但它可以用來檢查手動或自動求導的實現是否正確。 代碼實現 import numpy as np# 定義函數 f(x) x^2 def f…

養生的年輕人,自己給自己“治病”

【潮汐商業評論/原創】 “最近嘴周總長痘&#xff0c;應該是上火了&#xff0c;我這就下單點金銀花露喝。”對于長痘這件事&#xff0c;Anna的第一反應就是“內調”。 “針對性護膚和涂藥這些方法治標不治本&#xff0c;就算用完痘痘不泛紅且癟了&#xff0c;身體里的問題沒解…

上傳文件報413Request EntityToo Large錯誤解決辦法

產生這種原因是因為服務器限制了上傳大小 1、nginx服務器的解決辦法 修改nginx.conf的值就可以解決了 將以下代碼粘貼到nginx.conf內 client_max_body_size 20M 可以選擇在http{ }中設置&#xff1a;client_max_body_size 20m; 也可以選擇在server{ }中設置&#xff1a;cli…

金蝶軟件實現Excel數據復制分錄信息粘貼到單據體分錄行中

>>>適合KIS云專業版V16.0|KIS云旗艦版V7.0|K/3 WISE 14.0等版本<<< 實現Excel數據復制分錄信息粘貼到金蝶單據體分錄中,在采購訂單|采購入庫單|銷售訂單|銷售出庫單等類型單據中,以少量的必要字段在excel表格中按模板填列好,很方便快捷地復制到金蝶單據表體…

java+springboot+mysql銀行管理系統

項目介紹&#xff1a; 使用javaspringbootmysql開發的銀行管理系統&#xff0c;系統包含超級管理員、管理員、客戶角色&#xff0c;功能如下&#xff1a; 超級管理員&#xff1a;管理員管理&#xff1b;客戶管理&#xff1b;卡號管理&#xff08;存款、取款、轉賬&#xff09…