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

Maven學(xué)習(xí)----Maven安裝與環(huán)境變量配置教程

 更新時(shí)間:2021年06月29日 11:58:06   作者:phl成為自己的太陽(yáng)  
這篇文章主要給大家介紹了關(guān)于如何利用Maven入手Spring Boot第一個(gè)程序的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

一、Maven簡(jiǎn)介

1. 什么是Maven

​ Maven:是Apache提供的免費(fèi)開(kāi)源的項(xiàng)目管理工具。它提供了一個(gè)項(xiàng)目對(duì)象模型(pom.xml)、一個(gè)依賴(lài)管理系統(tǒng)(根據(jù)坐標(biāo),幫我們引入依賴(lài))、一套項(xiàng)目生命周期(幫我們方便的進(jìn)行項(xiàng)目構(gòu)建)、一組標(biāo)準(zhǔn)集合(Maven工程的目錄結(jié)構(gòu)規(guī)范,坐標(biāo)規(guī)范)、和一個(gè)插件管理系統(tǒng)(提供了進(jìn)行項(xiàng)目構(gòu)建的命令)。

2. Maven的作用

  • 項(xiàng)目構(gòu)建:一個(gè)項(xiàng)目開(kāi)發(fā)之后,經(jīng)歷的編譯、測(cè)試、打包、安裝、部署等等一系列的過(guò)程,叫項(xiàng)目構(gòu)建
    • 主要是測(cè)試、運(yùn)維/實(shí)施人員使用的
  • 依賴(lài)管理:Maven可以幫我們管理jar包,可以輕松的解決依賴(lài)的沖突問(wèn)題
    • 依賴(lài):通常指jar包,不僅僅是jar包
  • 模塊化創(chuàng)建項(xiàng)目

3. 坐標(biāo)的概念

  • 坐標(biāo):被Maven管理的每個(gè)項(xiàng)目,都必須有自己的唯一標(biāo)識(shí),這個(gè)唯一標(biāo)識(shí)叫坐標(biāo)坐
  • 標(biāo)的組成:由三部分組成
    • groupId:公司名、組織名 域名倒寫(xiě)。比如:c3p0, com.jd
    • artifactId:項(xiàng)目名、包名。比如:c3p0
    • version:版本號(hào)。比如:0.9.1.2, 1.0-SNAPSHOT, 5.2.0-RELEASE

小結(jié)

  • 什么是Maven:是Apache提供的一個(gè)開(kāi)源免費(fèi)的項(xiàng)目管理工具
  • Maven的作用:
    • 項(xiàng)目構(gòu)建:編譯、測(cè)試、打包、安裝、部署等等一系列的過(guò)程,叫項(xiàng)目構(gòu)建
    • 依賴(lài)管理:幫我們管理jar包依賴(lài)
    • 模塊化創(chuàng)建項(xiàng)目
  • 坐標(biāo)的概念:
    • 被Maven管理的每個(gè)項(xiàng)目/jar包,其唯一標(biāo)識(shí)叫坐標(biāo)
    • 由三部分組成:
      • groupId:企業(yè)名/組織名 域名倒寫(xiě)
      • artifactId:包名/項(xiàng)目名
      • version:版本號(hào)

二、Maven安裝配置【操作】

1. Maven的倉(cāng)庫(kù)類(lèi)型

1.本地倉(cāng)庫(kù):本地緩存jar包的文件夾

  1. 本地倉(cāng)庫(kù)默認(rèn)在:C:\Users\電腦的用戶(hù)名\.m2\repository
  2. 通常會(huì)修改配置文件,修改本地倉(cāng)庫(kù)的路徑

2.遠(yuǎn)程倉(cāng)庫(kù)(私服):一些企業(yè)、組織、社區(qū)搭建的倉(cāng)庫(kù)服務(wù)

  1. 通常企業(yè)里人自己搭建私服。私服里的jar包大多數(shù)還是來(lái)自于中央倉(cāng)庫(kù)
  2. 有些是企業(yè)內(nèi)部自己搭建、自己使用的
  3. 有些是企業(yè)搭建面向整個(gè)互聯(lián)網(wǎng)的,比如:阿里私服

3.中央倉(cāng)庫(kù)

  1. 是Maven官方團(tuán)隊(duì)維護(hù)的倉(cāng)庫(kù),里邊有最全的jar包。
  2. 但是沒(méi)有授權(quán)的jar包,中央倉(cāng)庫(kù)里沒(méi)有,比如:Oracle驅(qū)動(dòng)包
  3. 地址:https://repo1.maven.org/maven2

2. 下載與目錄結(jié)構(gòu)

maven
  |--bin   Maven的可執(zhí)行命令文件夾
  |--boot  Maven的引導(dǎo)程序(類(lèi)加載器)
  |--conf  配置文件夾
  |--lib   Maven的核心程序代碼

3. Maven安裝配置

3.1 安裝Maven

1.Maven是免安裝的,直接解壓

  1. 注意:解壓路徑里,不要有中文、空格、特殊字符

2.注意檢查JDK環(huán)境變量是否正確

  1. Maven軟件是Java語(yǔ)言編寫(xiě)的

3.配置Maven環(huán)境變量:

  1. 增加MAVEN_HOME=Maven的解壓目錄
  2. 修改Path中添加 %MAVEN_HOME%\bin

在這里插入圖片描述

在這里插入圖片描述

1.驗(yàn)證Maven配置

  1. 打開(kāi)cmd,輸入命令:mvn -version

在這里插入圖片描述

3.2 配置Maven倉(cāng)庫(kù)

配置步驟:

  1. 新建一個(gè)目錄,例如 :repository,目錄里不能有中文、空格、特殊字符
  2. 比如我的路徑為:D:\develop_software\maven\repository
  3. 修改Maven的conf\settings.xml配置文件

在這里插入圖片描述

擴(kuò)展:

  1. 修改settings.xml里,設(shè)置Maven編譯的版本jdk1.8。在<profiles>里邊增加:
<profile>    
    <id>jdk-1.8</id>    
    <activation>    
        <activeByDefault>true</activeByDefault>    
        <jdk>1.8</jdk>    
    </activation>    
    <properties>    
        <maven.compiler.source>1.8</maven.compiler.source>    
        <maven.compiler.target>1.8</maven.compiler.target>    
        <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>    
    </properties>    
</profile>

在這里插入圖片描述

小結(jié)

倉(cāng)庫(kù)類(lèi)型

  • 本地倉(cāng)庫(kù):自己電腦上緩存jar包的文件夾
  • 遠(yuǎn)程倉(cāng)庫(kù)(私服):一些企業(yè)、社區(qū)、組織自己搭建的倉(cāng)庫(kù)服務(wù)
  • 中央倉(cāng)庫(kù):Maven官方團(tuán)隊(duì)維護(hù)倉(cāng)庫(kù)服務(wù)

maven的安裝:

  1. 解壓。注意:解壓的目錄里不要有中文、空格、特殊字符
  2. 配置環(huán)境變量:
    1. 新增MAVEN_HOME, 值就是maven軟件的解壓目錄
    2. 修改Path,值里新增%MAVEN_HOME%\bin

配置本地倉(cāng)庫(kù):

  • 創(chuàng)建repository目錄里不要有中文、空格 、特殊字符
  • 修改Maven的conf\settings.xml,增加本地倉(cāng)庫(kù)的配置:<localRepository>標(biāo)簽

三、Maven項(xiàng)目的目錄結(jié)構(gòu)

一個(gè)項(xiàng)目要想使用Maven進(jìn)行管理,那么這個(gè)項(xiàng)目的目錄結(jié)構(gòu)就必須要符合Maven的要求:

maven項(xiàng)目
	|--pom.xml                 項(xiàng)目對(duì)象模型文件,一個(gè)Maven項(xiàng)目必定有pom.xml文件
	|--src
		|--main                項(xiàng)目的主體程序代碼目錄
		|	|--java            項(xiàng)目的Java程序代碼放在這文件夾里
		|	|--resources       項(xiàng)目的配置文件放在這里
		|	|--webapp          項(xiàng)目的web資源放在這里,html,css,js,jsp,音頻,圖片,視頻等等
		|		|--WEB-INF 
		|		|--其它web資源
		|--test                項(xiàng)目的單元測(cè)試代碼目錄
			|--java            項(xiàng)目的單元測(cè)試代碼
			|--resources       項(xiàng)目單元測(cè)試需要的配置文件

小結(jié)

src\main\java:放主體程序代碼的java文件

src\main\resources:放主體程序代碼的配置文件

src\main\webapp:放主體程序代碼的web資源:html、css、js、jsp等等

四、Maven構(gòu)建項(xiàng)目

1. 項(xiàng)目構(gòu)建的生命周期

Maven命令執(zhí)行的規(guī)律:

clean:			clean
compile:		compile
test:			compile=>test
package:		compile=>test=>package
install:		compile=>test=>package=>install
人的生命周期:嬰兒=>兒童=>少年=>青年=>中年=>老年

Maven有三套生命周期

  1. 清理生命周期:CleanLifeCycle
    1. 有常用命令:clean
  2. 默認(rèn)生命周期(構(gòu)建生命周期):DefaultLifeCycle
    1. 有常用命令:compile->test->package->install->deploy
  3. 站點(diǎn)生命周期:SiteLifeCycle
    1. 有常用命令:site。生成Maven項(xiàng)目的描述信息文檔
  • 如果執(zhí)行了一個(gè)目標(biāo)命令:Maven會(huì)把生命周期里的命令,從第一個(gè)一直執(zhí)行到目標(biāo)命令為止

小結(jié)

常用命令:

  • mvn clean:清理。刪除掉target目錄
  • mvn compile:編譯。把主體程序代碼進(jìn)行編譯,放到target目錄里
  • mvn test:測(cè)試。編譯并執(zhí)行單元測(cè)試代碼
  • mvn package:打包。Java項(xiàng)目打成jar包,web項(xiàng)目打包war包
  • mvn install:安裝。把程序包安裝到本地倉(cāng)庫(kù),安裝位置是坐標(biāo)對(duì)應(yīng)的文件夾

Maven的生命周期

  • 清理生命周期CleanLifeCycle:clean
  • 默認(rèn)生命周期/構(gòu)建生命周期DefaultLifeCycle:compile=>test=>package=>install=>deploy
  • 站點(diǎn)生命周期SiteLifeCycle:site
  • 生命周期的作用:只要執(zhí)行一個(gè)目標(biāo)命令,Maven會(huì)從生命周期里第一個(gè)階段開(kāi)始,執(zhí)行到目標(biāo)命令為止

五、Maven管理依賴(lài)和插件

Maven的依賴(lài)管理

  • 把Maven配置到idea中
  • 在idea里創(chuàng)建Maven的java項(xiàng)目
  • 在idea里創(chuàng)建Maven的web項(xiàng)目
  • Maven項(xiàng)目中,引入依賴(lài)的方法
  • Maven的依賴(lài)范圍配置,解決jar包沖突

1. 在idea配置Maven(操作)

  • 配置Maven

在這里插入圖片描述

  • 增加運(yùn)行的配置項(xiàng):-DarchetypeCatalog=internal

在這里插入圖片描述

2. 在idea創(chuàng)建Maven項(xiàng)目

2.1 創(chuàng)建Maven的java項(xiàng)目

1.創(chuàng)建Module,選擇Maven類(lèi)型,選擇骨架org.apache.maven.archetypes:maven-archetype-quickstart

在這里插入圖片描述

2.設(shè)置項(xiàng)目的坐標(biāo)

在這里插入圖片描述

3.再繼續(xù)步驟,跟以前的一樣:設(shè)置module的名稱(chēng)和位置

注意:不要和已有的其它module重名或者重位置

在這里插入圖片描述

4.創(chuàng)建后,如果彈窗Maven projects need to be imported,就選擇 啟動(dòng)自動(dòng)導(dǎo)入。

作用是:如果pom.xml文件有變更,Maven會(huì)自動(dòng)讀取,立即生效;否則就要手動(dòng)導(dǎo)入

在這里插入圖片描述

5.如果文件夾缺失,就創(chuàng)建補(bǔ)全,然后刷新

在這里插入圖片描述

2.2 創(chuàng)建Maven的web項(xiàng)目

1.選擇項(xiàng)目的骨架

在這里插入圖片描述

2.設(shè)置項(xiàng)目的坐標(biāo)

如果上邊Add as module toParent是有配置的,那么要在右邊全部選擇none

在這里插入圖片描述

在這里插入圖片描述

3. 引入依賴(lài)

如果項(xiàng)目中需要使用jar包,只需要把jar包的坐標(biāo)配置到項(xiàng)目的pom.xml中即可。在pom.xml的<dependencies>標(biāo)簽里增加以下內(nèi)容:

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>依賴(lài)范圍</scope>
</dependency>

可以在pom.xml里,輸入dep,會(huì)自動(dòng)補(bǔ)充坐標(biāo)模板,我們填充坐標(biāo)值即可

可以使用 alt+insert,會(huì)彈出依賴(lài)導(dǎo)入的界面,可以從本地倉(cāng)庫(kù)里搜索依賴(lài)

如果不知道依賴(lài)的坐標(biāo),可以從中央倉(cāng)庫(kù)搜索坐標(biāo):https://mvnrepository.com/

4. 依賴(lài)范圍

如果項(xiàng)目中引入的jar包過(guò)多,可能會(huì)出現(xiàn)jar包沖突,我們可能設(shè)置jar包不同的依賴(lài)范圍來(lái)處理jar包沖突。

Maven的依賴(lài)范圍有:

  • compile:默認(rèn)的依賴(lài)范圍,全范圍有效。
  • test:?jiǎn)卧獪y(cè)試有效。src/test里有效,src/main里無(wú)效
  • provided:編譯時(shí)有效,運(yùn)行時(shí)使用其它地方提供的jar包。
  • runtime:運(yùn)行時(shí)有效,編譯時(shí)無(wú)效。比如:數(shù)據(jù)庫(kù)驅(qū)動(dòng)包
  • system:引入倉(cāng)庫(kù)之外的本地jar包。少用

在這里插入圖片描述

實(shí)際開(kāi)發(fā)中特殊的jar包

  • Junit:依賴(lài)范圍通常設(shè)置為test
  • servlet-api, jsp-api:依賴(lài)范圍通常設(shè)置為provided
  • 數(shù)據(jù)庫(kù)驅(qū)動(dòng)包:依賴(lài)范圍可以是默認(rèn)的,也可以是runtime
  • 其它包,絕大多數(shù)都是默認(rèn)依賴(lài)范圍compile

小結(jié)

依賴(lài)范圍:

  • compile:默認(rèn)的。編譯時(shí)有效,運(yùn)行時(shí)有效,單元測(cè)試有效
  • test:?jiǎn)卧獪y(cè)試有效(src\main\test)里有效
    • 單元測(cè)試Junit的包
  • provided:編譯時(shí)有效,運(yùn)行時(shí)無(wú)效(備胎包)
    • servlet-api,jsp-api
  • runtime:編譯時(shí)無(wú)效,運(yùn)行時(shí)有效
    • 數(shù)據(jù)庫(kù)驅(qū)動(dòng)包
  • system:引用倉(cāng)庫(kù)之外的本地jar包,少用

Maven的插件

  • maven插件可以完成一些特定的功能。例如,集成jdk插件可以方便的修改項(xiàng)目的編譯環(huán)境;集成tomcat插件后,無(wú)需安裝tomcat服務(wù)器就可以運(yùn)行tomcat進(jìn)行項(xiàng)目的發(fā)布與測(cè)試。
  • 在pom.xml的plugins標(biāo)簽中,通過(guò)plugin標(biāo)簽引入maven的功能插件。

jdk編譯版本插件

  • <plugins>標(biāo)簽,放在pom.xml的<build>標(biāo)簽內(nèi)部
<!--jdk編譯插件-->
<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.2</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
            <encoding>utf-8</encoding>
        </configuration>
    </plugin>
</plugins>

tomcat7插件

  • <plugins>標(biāo)簽,放在pom.xml的<build>標(biāo)簽內(nèi)部
<plugins>
    <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <configuration>
            <!-- 指定端口 -->
            <port>82</port>
            <!-- 項(xiàng)目路徑 -->
            <path>/</path>
        </configuration>
    </plugin>
</plugins>

六、Maven的私服

搭建私服

  • 了解私服的概念
  • 搭建私服

講解

什么是Maven的私服

  • 公司在自己的局域網(wǎng)內(nèi)搭建自己的遠(yuǎn)程倉(cāng)庫(kù)服務(wù)器,稱(chēng)為私服
  • 私服服務(wù)器即是公司內(nèi)部的 maven 遠(yuǎn)程倉(cāng)庫(kù), 每個(gè)員工的電腦上安裝 maven 軟件并且連接私服服務(wù)器,員工將自己開(kāi)發(fā)的項(xiàng)目打成 jar 并發(fā)布到私服服務(wù)器,其它項(xiàng)目組從私服服務(wù)器下載所依賴(lài)的構(gòu)件(jar)。
  • 私服還充當(dāng)一個(gè)代理服務(wù)器,當(dāng)私服上沒(méi)有 jar 包會(huì)從互聯(lián)網(wǎng)中央倉(cāng)庫(kù)自動(dòng)下載,如下圖 :

在這里插入圖片描述

搭建Maven私服

1. 下載nexus

  • Nexus 是 Maven 倉(cāng)庫(kù)管理器, 通過(guò) nexus 可以搭建 maven 倉(cāng)庫(kù),同時(shí) nexus 還提供強(qiáng)大的倉(cāng)庫(kù)管理功能,構(gòu)件搜索功能等。
  • 下載地址: http://www.sonatype.org/nexus/archived/ ,下載: nexus-2.12.0-01-bundle.zip

在這里插入圖片描述

2. 安裝nexus

1.解壓nexus-2.12.0-01-bundle.zip。注意:解壓路徑里不要有中文、空格、特殊字符

2.以管理員方式打開(kāi)cmd,切換進(jìn)入解壓目錄的bin文件夾里,運(yùn)行命令:nexus.bat install

  1. 把nexus安裝成為Windows的服務(wù)

在這里插入圖片描述

3. 啟動(dòng)nexus

  • 啟動(dòng)nexus服務(wù):以管理員方式打開(kāi)cmd,輸入命令:net start nexus(第一次啟動(dòng)比較慢)
    • 如果把nexus服務(wù)設(shè)置為開(kāi)機(jī)自啟動(dòng),以后就不需要再手動(dòng)啟動(dòng)nexus服務(wù)了
    • 但是通常是nexus服務(wù)器上設(shè)置。我們自己電腦上,沒(méi)有必要設(shè)置開(kāi)機(jī)自啟動(dòng)
  • 關(guān)閉nexus服務(wù):以管理員方式打開(kāi)cmd,輸入命令:net stop nexus

4. 登錄nexus

打開(kāi)瀏覽器,輸入地址:http://localhost:8081/nexus

  • 可以打開(kāi)nexus的conf/nexus.properties文件,修改端口號(hào),重啟nexus服務(wù)后生效

在這里插入圖片描述

登錄“Log in”,輸入帳號(hào)和密碼進(jìn)行登錄(帳號(hào)admin,密碼admin123)

在這里插入圖片描述

nexus的倉(cāng)庫(kù)類(lèi)型介紹

在這里插入圖片描述

  • hosted:宿主倉(cāng)庫(kù), 部署自己的 jar 到這個(gè)類(lèi)型的倉(cāng)庫(kù),包括 releases 和 snapshot 兩部分, Releases 公司內(nèi)部發(fā)布版本倉(cāng)庫(kù)、 Snapshots 公司內(nèi)部測(cè)試版本倉(cāng)庫(kù)
  • proxy:代理倉(cāng)庫(kù), 用于代理遠(yuǎn)程的公共倉(cāng)庫(kù),如 maven 中央倉(cāng)庫(kù),用戶(hù)連接私服,私服自動(dòng)去中央倉(cāng)庫(kù)下載 jar 包或者插件。
  • group:倉(cāng)庫(kù)組,用來(lái)合并多個(gè) hosted/proxy 倉(cāng)庫(kù),通常我們配置自己的 maven 連接倉(cāng)庫(kù)組。
  • virtual:虛擬倉(cāng)庫(kù),兼容 Maven1 版本的 jar 或者插件

小結(jié)

  • hosted:宿主倉(cāng)庫(kù)。nexus私服本身的倉(cāng)庫(kù)
  • proxy:代理倉(cāng)庫(kù)。私服所代理的倉(cāng)庫(kù)
  • group:倉(cāng)庫(kù)組。針對(duì)于使用者,只要配置一個(gè)倉(cāng)庫(kù)組的地址,就可以引用組里定義的所有子庫(kù)
  • virtual:虛擬倉(cāng)庫(kù)

使用私服

  • 把項(xiàng)目發(fā)布到私服
  • 從私服下載jar包

把項(xiàng)目發(fā)布到私服

使用場(chǎng)景

  • 企業(yè)中多個(gè)團(tuán)隊(duì)協(xié)作開(kāi)發(fā)通常會(huì)將一些公用的組件、開(kāi)發(fā)模塊等發(fā)布到私服供其它團(tuán)隊(duì)或模塊開(kāi)發(fā)人員使用。
  • 本例子假設(shè)多團(tuán)隊(duì)分別開(kāi)發(fā)。某個(gè)團(tuán)隊(duì)開(kāi)發(fā)完在common_utils, 將 common_utils發(fā)布到私服供其它團(tuán)隊(duì)使用

配置

第一步:在用戶(hù)自己的Maven軟件里修改conf/settings.xml

  • servers標(biāo)簽里,配置私服的帳號(hào)和密碼
<server>
    <id>releases</id>
    <username>admin</username>
    <password>admin123</password>
</server>
<server>
    <id>snapshots</id>
    <username>admin</username>
    <password>admin123</password>
</server>

第二步:在用戶(hù)需要發(fā)布的私服的項(xiàng)目pom.xml里,配置私服倉(cāng)庫(kù)的地址。

  • 本公司的自己的 jar 包會(huì)上傳到私服的宿主倉(cāng)庫(kù),根據(jù)工程的版本號(hào)決定上傳到哪個(gè)宿主倉(cāng)庫(kù)
  • 如果版本為 release 則上傳到私服的 release 倉(cāng)庫(kù),如果版本為snapshot 則上傳到私服的 snapshot 倉(cāng)庫(kù)
  • 把以下內(nèi)容寫(xiě)到項(xiàng)目的pom.xml的根標(biāo)簽里
<distributionManagement>
    <repository>
        <!-- 注意:id的值,是剛剛在settings.xml中配置的server的id -->
        <id>releases</id>
        <url>http://localhost:8081/nexus/content/repositories/releases/</url>
    </repository>
    <snapshotRepository>
        <!-- 注意:id的值,是剛剛在settings.xml中配置的server的id -->
        <id>snapshots</id>
        <url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
    </snapshotRepository>
</distributionManagement>

測(cè)試

1.啟動(dòng)nexus服務(wù)(如果已啟動(dòng),就不需要做這一步)

2.在項(xiàng)目里執(zhí)行Maven的deploy命令:

  1. 根據(jù)本項(xiàng)目pom.xml中version定義決定發(fā)布到哪個(gè)倉(cāng)庫(kù)
  2. 如果version定義為xx-snapshot,項(xiàng)目將發(fā)布到 nexus 的 snapshot倉(cāng)庫(kù)
  3. 如果version定義為xx-release,項(xiàng)目將發(fā)布到 nexus的 release 倉(cāng)庫(kù)

從私服下載jar包

使用場(chǎng)景

  • 沒(méi)有配置 nexus的時(shí)候,如果本地倉(cāng)庫(kù)沒(méi)有,就會(huì)去中央倉(cāng)庫(kù)下載,下載速度不穩(wěn)定
  • 通常在企業(yè)中會(huì)在局域網(wǎng)內(nèi)部署一臺(tái)私服服務(wù)器。這樣:
    • 本地項(xiàng)目首先去本地倉(cāng)庫(kù)找 jar;
    • 如果沒(méi)有找到則連接私服從私服下載 jar 包;
    • 如果私服沒(méi)有 jar 包,私服同時(shí)作為代理服務(wù)器從中央倉(cāng)庫(kù)下載 jar 包

好處是:

  1. 由私服對(duì)公司項(xiàng)目的依賴(lài) jar 包統(tǒng)一管理
  2. 可以提高下載速度, 項(xiàng)目連接私服下載 jar 包的速度,要比項(xiàng)目連接中央倉(cāng)庫(kù)的速度快的多。

配置

第一步:在settings.xmlprofiles標(biāo)簽下配置:

注:由于settings.xml中沒(méi)有repositories標(biāo)簽,所以要使用profile標(biāo)簽來(lái)配置倉(cāng)庫(kù)

<profile>
    <!--profile 的 id-->
    <id>dev</id>
    <repositories>
        <repository>
            <!--倉(cāng)庫(kù) id, repositories 可以配置多個(gè)倉(cāng)庫(kù),保證 id 不重復(fù)-->
            <id>nexus</id>
            <!--倉(cāng)庫(kù)地址,即 nexus 倉(cāng)庫(kù)組的地址-->
            <url>http://localhost:8081/nexus/content/groups/public/</url>
            <!--是否下載 releases 構(gòu)件-->
            <releases>
                <enabled>true</enabled>
            </releases>
            <!--是否下載 snapshots 構(gòu)件-->
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>
    <pluginRepositories>
        <!-- 插件倉(cāng)庫(kù), maven 的運(yùn)行依賴(lài)插件,也需要從私服下載插件 -->
        <pluginRepository>
            <!-- 插件倉(cāng)庫(kù)的 id 不允許重復(fù),如果重復(fù)后邊配置會(huì)覆蓋前邊 -->
            <id>public</id>
            <name>Public Repositories</name>
            <url>http://localhost:8081/nexus/content/groups/public/</url>
        </pluginRepository>
    </pluginRepositories>
</profile>

第二步:激活profile定義的倉(cāng)庫(kù)

激活后,配置的倉(cāng)庫(kù)才會(huì)生效

<activeProfiles>
	<activeProfile>dev</activeProfile>
</activeProfiles>

測(cè)試 創(chuàng)建Maven應(yīng)用testdownload,配置依賴(lài)

<dependency>
    <groupId>com.baidu</groupId>
    <artifactId>commons-utils</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

編譯項(xiàng)目,查看日志會(huì)出現(xiàn):

在這里插入圖片描述

查看本地倉(cāng)庫(kù)里,會(huì)有從私服下載的jar包

小結(jié)

把項(xiàng)目發(fā)布到私服:

  1. 在Maven的settings.xml里,配置倉(cāng)庫(kù)的帳號(hào)和密碼
  2. 在Maven項(xiàng)目的pom.xml里,配置倉(cāng)庫(kù)的地址
  3. 執(zhí)行Maven命令:mvn deploy

從私服里下載jar:

  1. 在settings.xml里配置倉(cāng)庫(kù)地址
  2. 在settings.xml里激活倉(cāng)庫(kù)的配置
  3. 在Maven項(xiàng)目里,配置依賴(lài)
    1. 如果這個(gè)依賴(lài),在本地倉(cāng)庫(kù)里沒(méi)有,Maven就會(huì)從私服里下載到本地倉(cāng)庫(kù),再引入到Maven項(xiàng)目里

上傳jar到本地倉(cāng)庫(kù)和私服

目標(biāo)

  • 把第三方j(luò)ar打包到本地倉(cāng)庫(kù)
  • 把jar打包發(fā)布到私服

把第三方j(luò)ar打包到本地倉(cāng)庫(kù)

  • 如果有一個(gè)jar不在本地倉(cāng)庫(kù)、不在私服、不在中央倉(cāng)庫(kù)。我們可以把jar安裝到本地倉(cāng)庫(kù)中,方便后續(xù)使用
  • cmd命令示例:

mvn install:install-file -DgroupId=com.alibaba -DartifactId=fastjson -Dversion=1.1.37 -Dfile=fastjson-1.1.37.jar -Dpackaging=jar

在這里插入圖片描述

  • 查看本地倉(cāng)庫(kù),驗(yàn)證是否安裝成功

在這里插入圖片描述

把第三方j(luò)ar打包發(fā)布到私服

  • 第一步:在settings.xml中配置私服的server信息
<server>
    <id>thirdparty</id>
    <username>admin</username>
    <password>admin123</password>
</server>
  • 第二步:執(zhí)行命令

mvn deploy:deploy-file -DgroupId=com.alibaba -DartifactId=fastjson -Dversion=1.1.37 -Dpackaging=jar -Dfile=fastjson-1.1.37.jar -Durl=http://localhost:8081/nexus/content/repositories/thirdparty/ -DrepositoryId=thirdparty

在這里插入圖片描述

  • 第三步:查看私服的第三方倉(cāng)庫(kù),驗(yàn)證是否發(fā)布成功

在這里插入圖片描述

參數(shù)說(shuō)明

  • DgroupIdDartifactId構(gòu)成了 jar 包的坐標(biāo),項(xiàng)目就是依靠這兩個(gè)屬性定位。可以自己起名
  • Dfile 表示需要上傳的 jar 包的位置。
  • Durl 私服上倉(cāng)庫(kù)的位置,打開(kāi) nexus——>repositories 菜單,可以看到該路徑。
  • DrepositoryId 服務(wù)器的表示 id,在 nexus 的 configuration 可以看到。
  • Dversion 表示版本信息。

​ 上傳成功后,在 nexus 界面點(diǎn)擊 3rd party 倉(cāng)庫(kù)可以看到這包。

七、Lombok

1. Lombok介紹與配置

  • 什么是Lombok
  • Lombok的作用
  • Lombok的配置

什么是Lombok

  • Lombok是一個(gè)Java庫(kù),能自動(dòng)插入編輯器并構(gòu)建工具,簡(jiǎn)化Java開(kāi)發(fā)。
  • 官網(wǎng): https://www.projectlombok.org/

Lombok的作用

通過(guò)添加注解的方式,幫我們生成一些方法,提高開(kāi)發(fā)人員的開(kāi)發(fā)效率。

例如:

  • 開(kāi)發(fā)中經(jīng)常需要寫(xiě)的javabean,要添加相應(yīng)的getter/setter,也許還要去寫(xiě)構(gòu)造器、equals等方法
  • 當(dāng)屬性多時(shí),會(huì)出現(xiàn)大量的getter/setter方法,這些顯得很冗長(zhǎng)也沒(méi)有太多技術(shù)含量
  • 使用Lombok,可以幫我們生成這些方法,我們就不用自己編寫(xiě)了

Lombok的配置

  • 添加maven依賴(lài)
<dependency>
	<groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
	<version>1.18.8</version>
	<scope>provided</scope>
</dependency>

安裝插件

  • 注意:Lombok插件暫不支持idea2020
  • 使用Lombok還需要插件的配合。
  • 打開(kāi)idea的設(shè)置,點(diǎn)擊Plugins,點(diǎn)擊Browse repositories,在彈出的窗口中搜索lombok,然后安裝即可

在這里插入圖片描述

  • 解決編譯時(shí)出錯(cuò)問(wèn)題

​ 編譯時(shí)出錯(cuò),可能是沒(méi)有enable注解處理器。Annotation Processors > Enable annotation processing。設(shè)置完成之后程序正常運(yùn)行。

在這里插入圖片描述

2. Lombok的常用注解

目標(biāo)

@Data

@Getter/@Setter

@ToString

@NoArgsConstructor, @AllArgsConstructor

@Data

  • @Data注解在類(lèi)上,會(huì)為類(lèi)的所有屬性自動(dòng)生成setter/getter、equals、canEqual、hashCode、toString方法,如為final屬性,則不會(huì)為該屬性生成setter方法。
@Data
public class User implements Serializable{
    private Integer id;
    private String username;
    private String password;
    private String address;
    private String nickname;
    private String gender;
    private String email;
    private String status;
}

@Getter/@Setter

  • 如果覺(jué)得@Data不夠精細(xì),可以使用@Getter/@Setter注解
  • 此注解用在屬性上,可以為相應(yīng)的屬性自動(dòng)生成Getter/Setter方法.
public class User implements Serializable{
    @Setter
    @Getter
    private Integer id;
    private String username;
    private String password;
    private String address;
    private String nickname;
    private String gender;
    private String email;
    private String status;
}

@ToString

  • 類(lèi)上使用@ToString注解,Lombok會(huì)生成一個(gè)toString()方法
  • 生成的toString方法會(huì)輸出類(lèi)名、所有屬性(會(huì)按照屬性定義順序),用逗號(hào)來(lái)分割。
  • 通過(guò)exclude屬性指定忽略字段不輸出,
@ToString(exclude = {"id"}) 
public class User implements Serializable{
    private Integer id;
    private String username;
    private String password;
    private String address;
    private String nickname;
    private String gender;
    private String email;
    private String status;
}

@xxxConstructor

@NoArgsConstructor: 無(wú)參構(gòu)造器

@NoArgsConstructor
public class User implements Serializable{
    private Integer id;
    private String username;
    private String password;
    private String address;
    private String nickname;
    private String gender;
    private String email;
    private String status;
}
  • @AllArgsConstructor: 全參構(gòu)造器
@AllArgsConstructor
public class User implements Serializable{
    private Integer id;
    private String username;
    private String password;
    private String address;
    private String nickname;
    private String gender;
    private String email;
    private String status;
}

附:添加依賴(lài)出錯(cuò)怎么辦

現(xiàn)象:

  • 在pom.xml里添加依賴(lài)坐標(biāo)后,報(bào)紅,引入依賴(lài)失敗

原因:

  • 可能有多方面因素導(dǎo)致,最常見(jiàn)的原因是:
    • 網(wǎng)絡(luò)不穩(wěn)定,導(dǎo)致從中央倉(cāng)庫(kù)中下載依賴(lài)時(shí)失敗
    • 本地倉(cāng)庫(kù)中有大量的*.lastUpdated文件,是下載依賴(lài)出錯(cuò)后遺留的不完整數(shù)據(jù)

解決:

第一步:配置阿里云的倉(cāng)庫(kù)鏡像

打開(kāi)Maven軟件里conf/settings.xml

<mirrors>標(biāo)簽中添加如下內(nèi)容:

<mirror>
    <id>alimaven</id>
    <name>aliyun  maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
</mirror> 

第二步:刪除本地倉(cāng)庫(kù)里的緩存文件

  • .lastUpdated結(jié)尾的文件,是下載依賴(lài)失敗后遺留的文件,需要清除掉

1.在本地倉(cāng)庫(kù)文件夾里搜索*.lastUpdated

在這里插入圖片描述

2.把搜索到的所有文件全部刪除

在這里插入圖片描述

第三步:重新添加依賴(lài)

  • pom.xml中,刪除原有的所有依賴(lài)
  • 重新添加依賴(lài)進(jìn)去。
  • Maven會(huì)自動(dòng)重新導(dǎo)入依賴(lài),如果本地倉(cāng)庫(kù)中沒(méi)有,就會(huì)自動(dòng)從阿里云倉(cāng)庫(kù)鏡像下載依賴(lài)

總結(jié)

本篇文章就到這里了,希望可以幫到你,也希望您能多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • springboot注冊(cè)bean的三種方法

    springboot注冊(cè)bean的三種方法

    這篇文章主要介紹了springboot注冊(cè)bean的三種方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • 解決feign調(diào)用接口不穩(wěn)定的問(wèn)題

    解決feign調(diào)用接口不穩(wěn)定的問(wèn)題

    這篇文章主要介紹了解決feign調(diào)用接口不穩(wěn)定的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • java中斷機(jī)制實(shí)例講解

    java中斷機(jī)制實(shí)例講解

    這篇文章主要介紹了java中斷機(jī)制實(shí)例講解,用了風(fēng)趣幽默的講法,有對(duì)這方面不太懂的同學(xué)可以研究下
    2021-01-01
  • Spring Cache優(yōu)化數(shù)據(jù)庫(kù)訪問(wèn)的項(xiàng)目實(shí)踐

    Spring Cache優(yōu)化數(shù)據(jù)庫(kù)訪問(wèn)的項(xiàng)目實(shí)踐

    本文主要介紹了Spring Cache優(yōu)化數(shù)據(jù)庫(kù)訪問(wèn)的項(xiàng)目實(shí)踐,將創(chuàng)建一個(gè)簡(jiǎn)單的圖書(shū)管理應(yīng)用作為示例,并演示如何通過(guò)緩存減少對(duì)數(shù)據(jù)庫(kù)的頻繁查詢(xún),感興趣的可以了解一下
    2024-01-01
  • 解決springboot整合cxf啟動(dòng)報(bào)錯(cuò),原因是版本問(wèn)題

    解決springboot整合cxf啟動(dòng)報(bào)錯(cuò),原因是版本問(wèn)題

    這篇文章主要介紹了解決springboot整合cxf啟動(dòng)報(bào)錯(cuò),原因是版本問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • MyBatis攔截器的實(shí)現(xiàn)原理

    MyBatis攔截器的實(shí)現(xiàn)原理

    這篇文章主要介紹了MyBatis攔截器的實(shí)現(xiàn)原理,Mybatis攔截器并不是每個(gè)對(duì)象里面的方法都可以被攔截的,其具體內(nèi)容感興趣的小伙伴課題參考一下下面文章內(nèi)容
    2022-08-08
  • java監(jiān)聽(tīng)器的實(shí)現(xiàn)和原理詳解

    java監(jiān)聽(tīng)器的實(shí)現(xiàn)和原理詳解

    這篇文章主要給大家介紹了關(guān)于java監(jiān)聽(tīng)器實(shí)現(xiàn)和原理的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • mybatis報(bào)Query?was?Empty異常的問(wèn)題

    mybatis報(bào)Query?was?Empty異常的問(wèn)題

    這篇文章主要介紹了mybatis報(bào)Query?was?Empty異常的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • java 如何為文件及文件夾添加權(quán)限

    java 如何為文件及文件夾添加權(quán)限

    這篇文章主要介紹了java 如何為文件及文件夾添加權(quán)限的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java pdf和jpg互轉(zhuǎn)案例

    Java pdf和jpg互轉(zhuǎn)案例

    這篇文章主要介紹了Java pdf和jpg互轉(zhuǎn)案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09

最新評(píng)論