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

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

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

一、概念

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

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

Maven 本地倉庫 (Local Repository):

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

Nexus 私服 (Private Repository):

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

Maven 中央倉庫 (Central Repository):

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

工作流程:

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

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

依賴查找:

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

配置文件:

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

具體步驟:

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

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

根目錄:工程名
|---src://源碼
|---|---main: //存放主程序
|---|---|---java: //源碼文件
|---|---|---resources: //存放框架的資源文件
|---|---test://存放測試程序
|---|---|---java: //java測試文件
|---|---|---resources: //java測試的資源文件
|---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):自己電腦上存儲資源的倉庫,通過連接遠(yuǎn)程倉庫獲取資源
  • 遠(yuǎn)程倉庫(remote):非自己電腦上的倉庫,為本地倉庫提供資源
    • 中央倉庫:Maven團(tuán)隊維護(hù),存儲所有資源的倉庫
    • 私服:公司范圍內(nèi)存儲資源的倉庫,從中央倉庫獲取資源或自己的資源,僅對內(nèi)部開放,不對外共享

本地倉庫:

本地倉庫說明:

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

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

本地倉庫存放位置

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

<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è)置成功后,會從阿里的鏡像庫中獲取依賴,不會從 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)程倉庫。它通常由公司自己搭建,用于存儲公司內(nèi)部開發(fā)的庫和插件,也可以從中央倉庫或其他遠(yuǎn)程倉庫獲取依賴。私服可以加快公司內(nèi)部項目的構(gòu)建速度,同時也可以避免外部網(wǎng)絡(luò)不穩(wěn)定對項目構(gòu)建的影響。

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

<dependency>
    <!--工程組的標(biāo)識,它在一個組織或者項目中通常是唯一的,公司或域名倒序+項目名-->
    <groupId>mysql</groupId>
    <!--工程的名稱,模塊名-->
    <artifactId>mysql-connector-java</artifactId>
    <!--工程的版本號-->
    <version>8.0.31</version>
</dependency>
groupId:
    這是工程組的標(biāo)識。它在一個組織或者項目中通常是唯一的。例如,一個銀行組織 com.company.bank 擁有所有的和銀行相關(guān)的項目。
artifactId:
    這是工程的標(biāo)識。它通常是工程的名稱。例如,消費(fèi)者銀行。groupId 和 artifactId 一起定義了 artifact 在倉庫中的位置。
version:
    這是工程的版本號。在 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ā)、測試、部署、運(yùn)行),本jar會一直存在所有階段;
runtime:
    只在運(yùn)行時使用,如JDBC驅(qū)動,適用運(yùn)行和測試階段;
test:
    只在測試時使用,用于編譯和運(yùn)行測試代碼,不會隨項目發(fā)布;
provided:
    只在開發(fā)、測試階段使用。

五、Maven生命周期命令

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

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

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

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

相關(guān)文章

最新評論