您好,登錄后才能下訂單哦!
這篇文章主要講解了“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:是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)建的命令)。
項(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)目
坐標(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
什么是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)
由三部分組成:
1.本地倉(cāng)庫(kù):本地緩存jar包的文件夾
本地倉(cāng)庫(kù)默認(rèn)在:C:\Users\電腦的用戶名\.m2\repository
通常會(huì)修改配置文件,修改本地倉(cāng)庫(kù)的路徑
2.遠(yuǎn)程倉(cāng)庫(kù)(私服):一些企業(yè)、組織、社區(qū)搭建的倉(cāng)庫(kù)服務(wù)
通常企業(yè)里人自己搭建私服。私服里的jar包大多數(shù)還是來(lái)自于中央倉(cāng)庫(kù)
有些是企業(yè)內(nèi)部自己搭建、自己使用的
有些是企業(yè)搭建面向整個(gè)互聯(lián)網(wǎng)的,比如:阿里私服
3.中央倉(cāng)庫(kù)
是Maven官方團(tuán)隊(duì)維護(hù)的倉(cāng)庫(kù),里邊有最全的jar包。
但是沒(méi)有授權(quán)的jar包,中央倉(cāng)庫(kù)里沒(méi)有,比如:Oracle驅(qū)動(dòng)包
地址:https://repo1.maven.org/maven2
下載地址:http://maven.apache.org
Maven的目錄結(jié)構(gòu):
maven |--bin Maven的可執(zhí)行命令文件夾 |--boot Maven的引導(dǎo)程序(類加載器) |--conf 配置文件夾 |--lib Maven的核心程序代碼
1.Maven是免安裝的,直接解壓
注意:解壓路徑里,不要有中文、空格、特殊字符
2.注意檢查JDK環(huán)境變量是否正確
Maven軟件是Java語(yǔ)言編寫的
3.配置Maven環(huán)境變量:
增加MAVEN_HOME=Maven的解壓目錄
修改Path中添加 %MAVEN_HOME%\bin
1.驗(yàn)證Maven配置
打開(kāi)cmd,輸入命令:mvn -version
配置步驟:
新建一個(gè)目錄,例如 :repository,目錄里不能有中文、空格、特殊字符
比如我的路徑為:D:\develop_software\maven\repository
修改Maven的conf\settings.xml配置文件
擴(kuò)展:
修改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>
倉(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的安裝:
解壓。注意:解壓的目錄里不要有中文、空格、特殊字符
配置環(huán)境變量:
新增MAVEN_HOME, 值就是maven軟件的解壓目錄
修改Path,值里新增%MAVEN_HOME%\bin
配置本地倉(cāng)庫(kù):
創(chuàng)建repository目錄里不要有中文、空格 、特殊字符
修改Maven的conf\settings.xml,增加本地倉(cāng)庫(kù)的配置:<localRepository>標(biāo)簽
一個(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è)試需要的配置文件
src\main\java
:放主體程序代碼的java文件
src\main\resources
:放主體程序代碼的配置文件
src\main\webapp
:放主體程序代碼的web資源:html、css、js、jsp等等
Maven命令執(zhí)行的規(guī)律:
clean: clean compile: compile test: compile=>test package: compile=>test=>package install: compile=>test=>package=>install 人的生命周期:嬰兒=>兒童=>少年=>青年=>中年=>老年
Maven有三套生命周期
清理生命周期:CleanLifeCycle
有常用命令:clean
默認(rèn)生命周期(構(gòu)建生命周期):DefaultLifeCycle
有常用命令:compile->test->package->install->deploy
站點(diǎn)生命周期:SiteLifeCycle
有常用命令:site
。生成Maven項(xiàng)目的描述信息文檔
如果執(zhí)行了一個(gè)目標(biāo)命令:Maven會(huì)把生命周期里的命令,從第一個(gè)一直執(zhí)行到目標(biāo)命令為止
常用命令:
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配置到idea中
在idea里創(chuàng)建Maven的java項(xiàng)目
在idea里創(chuàng)建Maven的web項(xiàng)目
Maven項(xiàng)目中,引入依賴的方法
Maven的依賴范圍配置,解決jar包沖突
配置Maven
增加運(yùn)行的配置項(xiàng):-DarchetypeCatalog=internal
1.創(chuàng)建Module,選擇Maven類型,選擇骨架org.apache.maven.archetypes:maven-archetype-quickstart
2.設(shè)置項(xiàng)目的坐標(biāo)
3.再繼續(xù)步驟,跟以前的一樣:設(shè)置module的名稱和位置
注意:不要和已有的其它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ǔ)全,然后刷新
如果上邊Add as module to
和Parent
是有配置的,那么要在右邊全部選擇none
如果項(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/
如果項(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包。少用
實(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
依賴范圍:
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插件可以完成一些特定的功能。例如,集成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的功能插件。
把<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>
把<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>
了解私服的概念
搭建私服
公司在自己的局域網(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)下載,如下圖 :
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
1.解壓nexus-2.12.0-01-bundle.zip。注意:解壓路徑里不要有中文、空格、特殊字符
2.以管理員方式打開(kāi)cmd,切換進(jìn)入解壓目錄的bin文件夾里,運(yùn)行命令:nexus.bat install
把nexus安裝成為Windows的服務(wù)
啟動(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
打開(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)
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 或者插件
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包
使用場(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命令:
根據(jù)本項(xiàng)目pom.xml中version定義決定發(fā)布到哪個(gè)倉(cāng)庫(kù)
如果version定義為xx-snapshot,項(xiàng)目將發(fā)布到 nexus 的 snapshot倉(cāng)庫(kù)
如果version定義為xx-release,項(xiàng)目將發(fā)布到 nexus的 release 倉(cāng)庫(kù)
使用場(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 包
好處是:
由私服對(duì)公司項(xiàng)目的依賴 jar 包統(tǒng)一管理
可以提高下載速度, 項(xiàng)目連接私服下載 jar 包的速度,要比項(xiàng)目連接中央倉(cāng)庫(kù)的速度快的多。
配置
第一步:在settings.xml
的profiles
標(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):
查看本地倉(cāng)庫(kù)里,會(huì)有從私服下載的jar包
把項(xiàng)目發(fā)布到私服:
在Maven的settings.xml里,配置倉(cāng)庫(kù)的帳號(hào)和密碼
在Maven項(xiàng)目的pom.xml里,配置倉(cāng)庫(kù)的地址
執(zhí)行Maven命令:mvn deploy
從私服里下載jar:
在settings.xml里配置倉(cāng)庫(kù)地址
在settings.xml里激活倉(cāng)庫(kù)的配置
在Maven項(xiàng)目里,配置依賴
如果這個(gè)依賴,在本地倉(cāng)庫(kù)里沒(méi)有,Maven就會(huì)從私服里下載到本地倉(cāng)庫(kù),再引入到Maven項(xiàng)目里
把第三方j(luò)ar打包到本地倉(cāng)庫(kù)
把jar打包發(fā)布到私服
如果有一個(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)證是否安裝成功
第一步:在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ā)布成功
DgroupId
和DartifactId
構(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
Lombok的作用
Lombok的配置
Lombok是一個(gè)Java庫(kù),能自動(dòng)插入編輯器并構(gòu)建工具,簡(jiǎn)化Java開(kāi)發(fā)。
官網(wǎng): https://www.projectlombok.org/
通過(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,可以幫我們生成這些方法,我們就不用自己編寫了
添加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,然后安裝即可
解決編譯時(shí)出錯(cuò)問(wèn)題
編譯時(shí)出錯(cuò),可能是沒(méi)有enable注解處理器。Annotation Processors > Enable annotation processing。設(shè)置完成之后程序正常運(yùn)行。
目標(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; }
在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
2.把搜索到的所有文件全部刪除
第三步:重新添加依賴
在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)注!
免責(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)容。