2023-01-08 一、Maven的核心概念 1、倉庫 (1)倉庫的分類 ①本地倉庫:為當前電腦提供maven服務 ②遠程倉庫:為其他電腦提供maven服務 a.私服:架設在當前區域網環境下,為當前區域網範圍內的所有Maven工程服務 b.中央倉庫:架設在Internet上,為全世界所有Mav ...
2023-01-08
一、Maven的核心概念
1、倉庫
(1)倉庫的分類
①本地倉庫:為當前電腦提供maven服務
②遠程倉庫:為其他電腦提供maven服務
a.私服:架設在當前區域網環境下,為當前區域網範圍內的所有Maven工程服務
b.中央倉庫:架設在Internet上,為全世界所有Maven工程服務
c.中央倉庫的鏡像:架設在各大洲,為中央倉庫分擔流量。減輕中央倉庫的壓力,同時更快的響應用戶請求
(2)倉庫中包含的文件
①maven的插件
②第三方框架或工具的jar包
③自己研發的項目或模塊
二、maven的坐標
(1)坐標由g-a-v組成
①<groupId>:公司或組織的功能變數名稱倒序+當前項目名稱
②<artifactId>:當前項目的模塊名稱
③<version>:當前模塊的版本
(2)作用:使用坐標引入jar包
(3)應用
坐標的參考網址:
http://mvnrepository.com
打開網址
例如搜索“servlet”的依賴關係
點擊內容,進行複製,複製到“pom.xml”中的“<dependencies>”標簽內
三、maven的依賴管理
1、依賴範圍(即“pom.xml”中的“</dependencies>”中的“</dependency>”的“<scope>”標簽的值)
(1)compile(預設值):在main、test、Tomcat(伺服器)下均有效
(2)test:只能在test目錄下有效
(3)provided:在main、test下均有效,Tomcat(伺服器)下無效
2、依賴傳遞性
(1)依賴原則:
路徑最短者優先
先聲明者優先
註:maven是可以自動解決jar包之間的依賴問題
四、Maven中統一管理版本號
可以將相關jar包的版本號設置在“<properties>”中,在<dependency>中的<version>中使用“${spring-version}”進行設置
<properties> <spring-version>6.0.3</spring-version> </properties> <dependencies> <dependency> <groupId>com.hh</groupId> <artifactId>helloFriend</artifactId> <version>1.0-SNAPSHOT</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-core --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${spring-version}</version> </dependency> </dependencies>
五、Maven的繼承
1、maven中使用繼承的註意點:
父工程打包方式,必須是pom方式
2、maven繼承方式一
在父工程中的pom.xml中導入jar包,在子工程中統一使用(即所有子工程強制引入父工程jar包)
3、maven繼承方式二
子類中需要引入jar包時再引入(常用)
(1)父類中的“pom.xml”中
<dependencyManagement> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies> </dependencyManagement>
(2)子工程中的“<parent>”設置“<relativePath>”相對路徑
<parent> <artifactId>maven_demo</artifactId> <groupId>com.hh</groupId> <version>1.0-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent>
設置“依賴項”
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> </dependencies>
註:用此方法繼承,子工程中不能指定版本號
六、Maven的聚合
1、使用maven聚合的原因:
只要將子工程聚合到父工程中,就可以實現一個效果:安裝或清除父工程,子工程會進行同步操作。(類似於綁定關係)
2、聚合的語法
在父工程的“pom.xml”中
<modules> <module>maven_helloworld</module> <module>HelloFriend</module> <module>MakeFriend</module> </modules>