溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Maven安裝與環(huán)境變量配置教程

發(fā)布時(shí)間:2021-06-29 14:33:42 來(lái)源:億速云 閱讀:3457 作者:chen 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要講解了“Maven安裝與環(huán)境變量配置教程”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Maven安裝與環(huán)境變量配置教程”吧!

目錄
  • 一、Maven簡(jiǎn)介

    • 1. 什么是Maven

    • 2. Maven的作用

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

    • 小結(jié)

  • 二、Maven安裝配置【操作】

    • 1. Maven的倉(cāng)庫(kù)類型

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

    • 3. Maven安裝配置

      • 3.1 安裝Maven

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

    • 小結(jié)

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

      • 小結(jié)

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

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

          • 小結(jié)

          • 五、Maven管理依賴和插件

            • Maven的依賴管理

              • 1. 在idea配置Maven(操作)

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

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

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

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

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

              • 3. 引入依賴

              • 4. 依賴范圍

            • 小結(jié)

              • jdk編譯版本插件

              • tomcat7插件

          • Maven的插件

            • 六、Maven的私服

              • 搭建私服

                • 講解

                  • 什么是Maven的私服

                • 搭建Maven私服

                  • 1. 下載nexus

                  • 2. 安裝nexus

                  • 3. 啟動(dòng)nexus

                  • 4. 登錄nexus

                  • nexus的倉(cāng)庫(kù)類型介紹

                • 小結(jié)

                  • 使用私服

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

                    • 從私服下載jar包

                  • 小結(jié)

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

                      • 目標(biāo)

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

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

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

                  • 七、Lombok

                    • 1. Lombok介紹與配置

                      • 什么是Lombok

                      • Lombok的作用

                      • Lombok的配置

                    • 2. Lombok的常用注解

                    • 附:添加依賴出錯(cuò)怎么辦

                      • 現(xiàn)象:

                        • 原因:

                          • 解決:

                      • 總結(jié)

                        一、Maven簡(jiǎn)介

                        1. 什么是Maven

                        Maven:是Apache提供的免費(fèi)開(kāi)源的項(xiàng)目管理工具。它提供了一個(gè)項(xiàng)目對(duì)象模型(pom.xml)、一個(gè)依賴管理系統(tǒng)(根據(jù)坐標(biāo),幫我們引入依賴)、一套項(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í)施人員使用的

                        • 依賴管理:Maven可以幫我們管理jar包,可以輕松的解決依賴的沖突問(wèn)題

                          • 依賴:通常指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:公司名、組織名 域名倒寫。比如: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)建

                          • 依賴管理:幫我們管理jar包依賴

                          • 模塊化創(chuàng)建項(xiàng)目

                        • 坐標(biāo)的概念:

                          • groupId:企業(yè)名/組織名 域名倒寫

                          • artifactId:包名/項(xiàng)目名

                          • version:版本號(hào)

                          • 被Maven管理的每個(gè)項(xiàng)目/jar包,其唯一標(biāo)識(shí)叫坐標(biāo)

                          • 由三部分組成:

                        二、Maven安裝配置【操作】

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

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

                        1. 本地倉(cāng)庫(kù)默認(rèn)在:C:\Users\電腦的用戶名\.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)

                        • 下載地址:http://maven.apache.org 

                        • Maven的目錄結(jié)構(gòu):

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

                        3. Maven安裝配置

                        3.1 安裝Maven

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

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

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

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

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

                        1. 增加MAVEN_HOME=Maven的解壓目錄

                        2. 修改Path中添加 %MAVEN_HOME%\bin

                        Maven安裝與環(huán)境變量配置教程

                        Maven安裝與環(huán)境變量配置教程

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

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

                        Maven安裝與環(huán)境變量配置教程

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

                        配置步驟:

                        1. 新建一個(gè)目錄,例如 :repository,目錄里不能有中文、空格、特殊字符

                        2. 比如我的路徑為:D:\develop_software\maven\repository

                        3. 修改Maven的conf\settings.xml配置文件

                        Maven安裝與環(huán)境變量配置教程

                        擴(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>

                        Maven安裝與環(huán)境變量配置教程

                        小結(jié)

                        倉(cāng)庫(kù)類型

                        • 本地倉(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管理依賴和插件

                        Maven的依賴管理

                        • 把Maven配置到idea中

                        • 在idea里創(chuàng)建Maven的java項(xiàng)目

                        • 在idea里創(chuàng)建Maven的web項(xiàng)目

                        • Maven項(xiàng)目中,引入依賴的方法

                        • Maven的依賴范圍配置,解決jar包沖突

                        1. 在idea配置Maven(操作)
                        • 配置Maven

                        Maven安裝與環(huán)境變量配置教程

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

                        Maven安裝與環(huán)境變量配置教程

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

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

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

                        Maven安裝與環(huán)境變量配置教程

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

                        Maven安裝與環(huán)境變量配置教程

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

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

                        Maven安裝與環(huán)境變量配置教程

                        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)入

                        Maven安裝與環(huán)境變量配置教程

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

                        Maven安裝與環(huán)境變量配置教程

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

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

                        Maven安裝與環(huán)境變量配置教程

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

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

                        Maven安裝與環(huán)境變量配置教程

                        Maven安裝與環(huán)境變量配置教程

                        3. 引入依賴

                        如果項(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>依賴范圍</scope>
                        </dependency>

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

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

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

                        4. 依賴范圍

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

                        Maven的依賴范圍有:

                        • compile:默認(rèn)的依賴范圍,全范圍有效。

                        • 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包。少用

                        Maven安裝與環(huán)境變量配置教程

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

                        • Junit:依賴范圍通常設(shè)置為test

                        • servlet-api, jsp-api:依賴范圍通常設(shè)置為provided

                        • 數(shù)據(jù)庫(kù)驅(qū)動(dòng)包:依賴范圍可以是默認(rèn)的,也可以是runtime

                        • 其它包,絕大多數(shù)都是默認(rèn)依賴范圍compile

                        小結(jié)

                        依賴范圍:

                        • 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ù)器,稱為私服

                        • 私服服務(wù)器即是公司內(nèi)部的 maven 遠(yuǎn)程倉(cāng)庫(kù), 每個(gè)員工的電腦上安裝 maven 軟件并且連接私服服務(wù)器,員工將自己開(kāi)發(fā)的項(xiàng)目打成 jar 并發(fā)布到私服服務(wù)器,其它項(xiàng)目組從私服服務(wù)器下載所依賴的構(gòu)件(jar)。

                        • 私服還充當(dāng)一個(gè)代理服務(wù)器,當(dāng)私服上沒(méi)有 jar 包會(huì)從互聯(lián)網(wǎng)中央倉(cāng)庫(kù)自動(dòng)下載,如下圖 :

                        Maven安裝與環(huán)境變量配置教程

                        搭建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

                        Maven安裝與環(huán)境變量配置教程

                        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ù)

                        Maven安裝與環(huán)境變量配置教程

                        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ù)后生效

                        Maven安裝與環(huán)境變量配置教程

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

                        Maven安裝與環(huán)境變量配置教程

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

                        Maven安裝與環(huán)境變量配置教程

                        • hosted:宿主倉(cāng)庫(kù), 部署自己的 jar 到這個(gè)類型的倉(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ù),用戶連接私服,私服自動(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ì)使用

                        配置

                        第一步:在用戶自己的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>

                        第二步:在用戶需要發(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à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)目的依賴 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)行依賴插件,也需要從私服下載插件 -->
                                <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,配置依賴

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

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

                        Maven安裝與環(huá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)目里,配置依賴

                          1. 如果這個(gè)依賴,在本地倉(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

                        Maven安裝與環(huán)境變量配置教程

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

                        Maven安裝與環(huá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

                        Maven安裝與環(huán)境變量配置教程

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

                        Maven安裝與環(huán)境變量配置教程

                        參數(shù)說(shuō)明
                        • DgroupIdDartifactId構(gòu)成了 jar 包的坐標(biāo),項(xiàng)目就是依靠這兩個(gè)屬性定位??梢宰约浩鹈?/p>

                        • 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)常需要寫的javabean,要添加相應(yīng)的getter/setter,也許還要去寫構(gòu)造器、equals等方法

                        • 當(dāng)屬性多時(shí),會(huì)出現(xiàn)大量的getter/setter方法,這些顯得很冗長(zhǎng)也沒(méi)有太多技術(shù)含量

                        • 使用Lombok,可以幫我們生成這些方法,我們就不用自己編寫了

                        Lombok的配置
                        • 添加maven依賴

                        <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,然后安裝即可

                        Maven安裝與環(huán)境變量配置教程

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

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

                        Maven安裝與環(huán)境變量配置教程

                        2. Lombok的常用注解

                        目標(biāo)

                        @Data

                        @Getter/@Setter

                        @ToString

                        @NoArgsConstructor, @AllArgsConstructor

                        @Data

                        • @Data注解在類上,會(huì)為類的所有屬性自動(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

                        • 類上使用@ToString注解,Lombok會(huì)生成一個(gè)toString()方法

                        • 生成的toString方法會(huì)輸出類名、所有屬性(會(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;
                        }

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

                        現(xiàn)象:

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

                        原因:

                        • 可能有多方面因素導(dǎo)致,最常見(jiàn)的原因是:

                          • 網(wǎng)絡(luò)不穩(wěn)定,導(dǎo)致從中央倉(cāng)庫(kù)中下載依賴時(shí)失敗

                          • 本地倉(cāng)庫(kù)中有大量的*.lastUpdated文件,是下載依賴出錯(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é)尾的文件,是下載依賴失敗后遺留的文件,需要清除掉

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

                        Maven安裝與環(huán)境變量配置教程

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

                        Maven安裝與環(huán)境變量配置教程

                        第三步:重新添加依賴

                        • pom.xml中,刪除原有的所有依賴

                        • 重新添加依賴進(jìn)去。

                        • Maven會(huì)自動(dòng)重新導(dǎo)入依賴,如果本地倉(cāng)庫(kù)中沒(méi)有,就會(huì)自動(dòng)從阿里云倉(cāng)庫(kù)鏡像下載依賴

                        感謝各位的閱讀,以上就是“Maven安裝與環(huán)境變量配置教程”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Maven安裝與環(huán)境變量配置教程這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

                        向AI問(wèn)一下細(xì)節(jié)

                        免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

                        AI