欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot左腳進(jìn)門之Maven管理家具體步驟

 更新時(shí)間:2024年12月16日 10:57:54   作者:KEEPMA  
Maven 是一個(gè)項(xiàng)目管理和整合工具,通過對(duì) 目錄結(jié)構(gòu)和構(gòu)建生命周期 的標(biāo)準(zhǔn)化, 使開發(fā)團(tuán)隊(duì)用極少的時(shí)間就能夠自動(dòng)完成工程的基礎(chǔ)構(gòu)建配置,本文介紹SpringBoot左腳進(jìn)門之Maven管理家具體步驟,感興趣的朋友一起看看吧

一、概念

Maven 是一個(gè)項(xiàng)目管理和整合工具。通過對(duì) 目錄結(jié)構(gòu)和構(gòu)建生命周期 的標(biāo)準(zhǔn)化, 使開發(fā)團(tuán)隊(duì)用極少的時(shí)間就能夠自動(dòng)完成工程的基礎(chǔ)構(gòu)建配置。

Maven 簡(jiǎn)化了工程的構(gòu)建過程,并對(duì)其標(biāo)準(zhǔn)化,提高了重用性。

Maven 本地倉庫 (Local Repository):

  • 每個(gè)開發(fā)者的計(jì)算機(jī)上都有一個(gè)本地倉庫,用于存儲(chǔ)下載的依賴庫。
  • 本地倉庫通常位于用戶的 ~/.m2/repository 目錄下(在 Windows 上通常是 C:\Users<username>.m2\repository)。

Nexus 私服 (Private Repository):

  • Nexus 是一個(gè)流行的倉庫管理工具,用于托管私有倉庫。
  • 私有倉庫可以存儲(chǔ)企業(yè)內(nèi)部的庫,也可以作為中央倉庫的緩存,提高下載速度。
  • 開發(fā)者通過 HTTP 訪問 Nexus 私服,下載所需的依賴庫。

Maven 中央倉庫 (Central Repository):

  • Maven 中央倉庫是公共的、開源的庫倉庫,包含了大量開源項(xiàng)目的庫。
  • 開發(fā)者可以通過 HTTP 訪問 Maven 中央倉庫,下載開源庫。

工作流程:

開發(fā)者的 Maven 項(xiàng)目:

  • 開發(fā)者在本地計(jì)算機(jī)上使用 Maven 管理項(xiàng)目。
  • Maven 項(xiàng)目通過 pom.xml 文件定義依賴關(guān)系。

依賴查找:

  • 當(dāng) Maven 需要下載一個(gè)依賴庫時(shí),它首先檢查本地倉庫。
  • 如果本地倉庫中沒有該庫,則 Maven 會(huì)嘗試從 Nexus 私服下載。
  • 如果 Nexus 私服中也沒有該庫,則 Maven 會(huì)從 Maven 中央倉庫下載,并將該庫緩存到本地倉庫和 Nexus 私服中。

配置文件:

  • settings.xml 文件用于配置 Maven 的全局設(shè)置,包括鏡像、服務(wù)器認(rèn)證信息等。
  • pom.xml 文件用于定義項(xiàng)目的構(gòu)建配置和依賴關(guān)系。

具體步驟:

  • 本地倉庫檢查:
  • Maven 首先檢查本地倉庫是否有所需的依賴庫。
  • Nexus 私服檢查:
  • 如果本地倉庫中沒有,Maven 會(huì)嘗試從 Nexus 私服下載。
  • Maven 中央倉庫檢查:
  • 如果 Nexus 私服中也沒有,Maven 會(huì)從 Maven 中央倉庫下載,并將該庫緩存到本地倉庫和 Nexus 私服中。

二、Maven目錄結(jié)構(gòu)

根目錄:工程名
|---src://源碼
|---|---main: //存放主程序
|---|---|---java: //源碼文件
|---|---|---resources: //存放框架的資源文件
|---|---test://存放測(cè)試程序
|---|---|---java: //java測(cè)試文件
|---|---|---resources: //java測(cè)試的資源文件
|---pom.xml://maven的核心配置文件
<project ...>
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.itranswarp.learnjava</groupId>
    <artifactId>hello</artifactId>
    <version>1.0</version>
    <packaging>jar</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.release>17</maven.compiler.release>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>2.0.16</version>
        </dependency>
    </dependencies>
</project>

三、倉庫

Maven 倉庫有兩種類型:

  • 本地倉庫(local):自己電腦上存儲(chǔ)資源的倉庫,通過連接遠(yuǎn)程倉庫獲取資源
  • 遠(yuǎn)程倉庫(remote):非自己電腦上的倉庫,為本地倉庫提供資源
    • 中央倉庫:Maven團(tuán)隊(duì)維護(hù),存儲(chǔ)所有資源的倉庫
    • 私服:公司范圍內(nèi)存儲(chǔ)資源的倉庫,從中央倉庫獲取資源或自己的資源,僅對(duì)內(nèi)部開放,不對(duì)外共享

本地倉庫:

本地倉庫說明:

Maven 本地倉庫是機(jī)器上的一個(gè)文件夾,它在你第一次運(yùn)行任何 maven 命令的時(shí)候創(chuàng)建。

Maven 本地倉庫保存你的工程的所有依賴。當(dāng)你運(yùn)行一次 Maven 構(gòu)建命令,Maven 會(huì)自動(dòng)下載所有依賴的 jar 文件到本地倉庫中。它避免了每次構(gòu)建時(shí)都引用存放在遠(yuǎn)程機(jī)器上的依賴文件。

本地倉庫存放位置

本地倉庫默認(rèn)被創(chuàng)建在 C:\Users\用戶名.m2\ 目錄下。要修改默認(rèn)位置,在 %M2_HOME%\conf 目錄中的 settings.xml 文件中定義另一個(gè)路徑。

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 
   http://maven.apache.org/xsd/settings-1.0.0.xsd">
      <localRepository>${user.home}/.m2/repository</localRepository>
</settings>

中央倉庫:

Maven 中央倉庫是由 Maven 社區(qū)提供的倉庫。

//設(shè)置成功后,會(huì)從阿里的鏡像庫中獲取依賴,不會(huì)從 Maven 中央倉庫中獲取依賴了。
<!--添加如下配置:設(shè)置阿里鏡像庫-->
<mirror>
    <id>ali</id>
    <name>ali Maven</name>
    <mirrorOf>*</mirrorOf>
    <url>https://maven.aliyun.com/repository/public/</url>
</mirror>

私服:

私服是一種在公司內(nèi)部或局域網(wǎng)中使用的遠(yuǎn)程倉庫。它通常由公司自己搭建,用于存儲(chǔ)公司內(nèi)部開發(fā)的庫和插件,也可以從中央倉庫或其他遠(yuǎn)程倉庫獲取依賴。私服可以加快公司內(nèi)部項(xiàng)目的構(gòu)建速度,同時(shí)也可以避免外部網(wǎng)絡(luò)不穩(wěn)定對(duì)項(xiàng)目構(gòu)建的影響。

四、坐標(biāo)和依賴

<dependency>
    <!--工程組的標(biāo)識(shí),它在一個(gè)組織或者項(xiàng)目中通常是唯一的,公司或域名倒序+項(xiàng)目名-->
    <groupId>mysql</groupId>
    <!--工程的名稱,模塊名-->
    <artifactId>mysql-connector-java</artifactId>
    <!--工程的版本號(hào)-->
    <version>8.0.31</version>
</dependency>
groupId:
    這是工程組的標(biāo)識(shí)。它在一個(gè)組織或者項(xiàng)目中通常是唯一的。例如,一個(gè)銀行組織 com.company.bank 擁有所有的和銀行相關(guān)的項(xiàng)目。
artifactId:
    這是工程的標(biāo)識(shí)。它通常是工程的名稱。例如,消費(fèi)者銀行。groupId 和 artifactId 一起定義了 artifact 在倉庫中的位置。
version:
    這是工程的版本號(hào)。在 artifact 的倉庫中,它用來區(qū)分不同的版本。例如: com.company.bank:consumer-banking:1.0 com.company.bank:consumer-banking:1.1
<dependencies>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.31</version>
        <!--scope標(biāo)簽代表指定依賴范圍-->
        <scope>runtime</scope>
    </dependency>
</dependencies>
compile:
    默認(rèn)值,適用于所有階段(開發(fā)、測(cè)試、部署、運(yùn)行),本jar會(huì)一直存在所有階段;
runtime:
    只在運(yùn)行時(shí)使用,如JDBC驅(qū)動(dòng),適用運(yùn)行和測(cè)試階段;
test:
    只在測(cè)試時(shí)使用,用于編譯和運(yùn)行測(cè)試代碼,不會(huì)隨項(xiàng)目發(fā)布;
provided:
    只在開發(fā)、測(cè)試階段使用。

五、Maven生命周期命令

命令作用
mvn compile編譯主程序 src/main
,生成target目錄,存放編譯主程序生成的字節(jié)碼文件,輸出到 target/classes
mvn test-compile編譯測(cè)試程序 src/main
,生成target目錄,存放編譯主程序生成的字節(jié)碼文件,輸出到 target/classes
mvn test編寫的測(cè)試代碼并生成測(cè)試報(bào)告(目前對(duì)于后端開發(fā)沒有太大作用)
mvn package將項(xiàng)目打成jar包
mvn clean清空項(xiàng)目本地編譯目錄
mvn install將項(xiàng)目 安裝到本地倉庫(多個(gè)項(xiàng)目相互依賴 相互使用時(shí).)

這是最常用的生命周期,用于編譯、測(cè)試、打包和部署項(xiàng)目。它的典型階段包括:

  • validate:驗(yàn)證項(xiàng)目的正確性以及所有必要的信息是否可用。
  • compile:編譯項(xiàng)目的源代碼。
  • test:使用合適的單元測(cè)試框架(如 JUnit)運(yùn)行測(cè)試,但不包含生成的測(cè)試代碼。
  • package:將編譯后的代碼打包成可分發(fā)格式,如 JAR 或 WAR 文件。
  • verify:對(duì)集成測(cè)試的結(jié)果進(jìn)行檢查,確保質(zhì)量標(biāo)準(zhǔn)得到滿足。
  • install:將包安裝到本地倉庫,以便其他本地項(xiàng)目可以依賴它。
  • deploy:在集成或發(fā)布環(huán)境中完成,將最終的包復(fù)制到遠(yuǎn)程倉庫中。

到此這篇關(guān)于SpringBoot左腳進(jìn)門之Maven管理家具體步驟的文章就介紹到這了,更多相關(guān)SpringBoot Maven管理家內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論