一,介紹、安裝
1、maven介紹
maven是一個Java世界中,構建工具。
核心功能:
(1) 管理依賴:
管理文件運行的順序邏輯依賴關系。對配置文件,進行構建和編譯。其也是在調用jdk,來進行編譯打包工作。
(2) 打包
通過使用maven,把java代碼構造成war包
或者jar包
。
jar包是一種特殊的壓縮包,它是把各種.class文件放到了一起。
2、安裝Maven
直接使用IDEA
軟件內置的 maven
3、如何使用搭建idea
- 創建項目的時候,不選擇java,而是選擇Maven的方式來創建項目
- groupId:表示你所在的公司/組織
- Aetifactid:表示當前項目的名字
- Version:表示當前版本號
- 以上配置用途:當一個程序,要發布到maven的中央倉庫上,這三個參數就是這個程序在中央倉庫的重要標識
4、目錄結構
/src/main/java 這個目錄用于放java代碼
/src/main/resources這個目錄用于放一些依賴的資源
/src/test/java 這個目錄用來放單元測試代碼
/pom.xml 這個是maven項目的核心配置文件,Maven依賴什么,需要什么配置,都放在這個文件里
5、如何使用maven
右側有一個 maven 的控制面板,點開Lifecycle:maven
是生命周期。
這些羅列的內容,其實都是可以通過 maven來操作的。
最常用的就是 package,他的功能就是打包,也不僅僅是打包,會執行上面的所有操作。
最終的打包結果,一般是一個 jar 或者 war。
6、maven管理依賴
下面以mysql(5.1.47版本)為例,下載并安裝第三方庫
第一步,去中央倉庫找到mysql的驅動包
https://mvnrepository.com/search?q=mysql
進行查找對應版本的mysql的xml配置代碼
第二步:直接復制maven標簽下的xml配置,粘貼到根目錄的pom.xml
里面新建的<dependencies></dependencies>
標簽中。
注意:
1、<dependencies>
這個標簽中,可以放多個<dependency>
標簽,一個項目可以引入多個依賴。在初始創建下,沒有這個依賴標簽,需要手動創建一個引入后,就會自己去下載依賴了。
2、無論是 maven 還是其他的庫,都是通過同樣的操作,來引入的,只要把對應的 xml 片段(坐標)拷貝到pom.xml 文件中即可,就可以自動引入。
二、setting.xml 和pom.xml 配置
1、setting.xml
在setting.xml
中,配置資源拉取遠程倉庫,提高下載速度。依次為:阿里云,華為云,官方云(2個)
<mirror><id>nexus-aliyun</id)<name>Nexus aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public</url>> <mirrorOf>central</mirrOf>
</mirror><mirror><id>huaweicloud</id><mirrorOf>*</mirrorOf><url>https://repo.huaweicloud.com/repository/maven/</url>
</mirror><mirror><id>central</id><name>Maven Repository Switchboard</name><url>http://repo.maven.org/maven2/</url><mirrorOf>central</mirrorOf>
</mirror><mirror><id>central</id><name>Maven Repository Switchboard</name><url>http://repo2.maven.org/maven2/</url><mirrorOf>central</mirrorOf>
</mirror>
2、pom.xml
相關標簽及說明:
modelVersion: 指定了 POM 模型版本,默認是 “4.0.0”。
groupId: 項目的組織或團隊標識。
artifactId: 項目的唯一標識符,一個組織或團隊內是唯一的。
version: 項目的版本號。
packaging: 打包方式,通常是 "jar"
,部署tomcat,部署改為"war"
。
name: 項目的展示名。
description: 項目的描述。
properties: 自定義屬性。
dependencies: 項目依賴列表,
dependency:每個依賴可以包括 groupId, artifactId, version 等。
dependencyManagement: 用于管理項目依賴的版本,確保子項目之間的依賴版本一致。
build: 構建配置,包括插件配置、資源配置等。
reporting: 報告配置,用于配置如何生成項目報告。
repositories: 倉庫配置,用于指定項目構建時使用的遠程倉庫。
pluginRepositories: 插件倉庫配置,用于指定構建插件時使用的遠程倉庫。
<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/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>my-project</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging><name>My Project</name><description>A simple example project</description><properties><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.0</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin></plugins></build>
</project>