欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

目錄

柚子快報(bào)邀請(qǐng)碼778899分享:java maven學(xué)習(xí)筆記

柚子快報(bào)邀請(qǐng)碼778899分享:java maven學(xué)習(xí)筆記

http://yzkb.51969.com/

先贊后看,養(yǎng)成習(xí)慣?。?!?? ?? ?? 文章碼字不易,如果喜歡可以關(guān)注我哦! ?如果本篇內(nèi)容對(duì)你有所啟發(fā),歡迎訪問(wèn)我的個(gè)人博客了解更多內(nèi)容:鏈接地址

基礎(chǔ)

maven的作用

項(xiàng)目構(gòu)建:提供標(biāo)準(zhǔn)的,跨平臺(tái)的自動(dòng)化構(gòu)建方式依賴管理:方便快捷的管理項(xiàng)目依賴資源(jar包),避免資源間的版本沖突問(wèn)題統(tǒng)一開(kāi)發(fā)結(jié)構(gòu):提供標(biāo)準(zhǔn)的,統(tǒng)一的項(xiàng)目結(jié)構(gòu)pom

Maven生命周期命令

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

高級(jí)

分模塊開(kāi)發(fā)設(shè)計(jì)

(1)按照功能拆分

我們現(xiàn)在的項(xiàng)目都是在一個(gè)模塊中,比如前面的SSM整合開(kāi)發(fā)。雖然這樣做功能也都實(shí)現(xiàn)了,但是也存在了一些問(wèn)題,我們拿銀行的項(xiàng)目為例來(lái)聊聊這個(gè)事。

網(wǎng)絡(luò)沒(méi)有那么發(fā)達(dá)的時(shí)候,我們需要到銀行柜臺(tái)或者取款機(jī)進(jìn)行業(yè)務(wù)操作隨著互聯(lián)網(wǎng)的發(fā)展,我們有了電腦以后,就可以在網(wǎng)頁(yè)上登錄銀行網(wǎng)站使用U盾進(jìn)行業(yè)務(wù)操作再來(lái)就是隨著智能手機(jī)的普及,我們只需要用手機(jī)登錄APP就可以進(jìn)行業(yè)務(wù)操作

上面三個(gè)場(chǎng)景出現(xiàn)的時(shí)間是不相同的,如果非要把三個(gè)場(chǎng)景的模塊代碼放入到一個(gè)項(xiàng)目,那么當(dāng)其中某一個(gè)模塊代碼出現(xiàn)問(wèn)題,就會(huì)導(dǎo)致整個(gè)項(xiàng)目無(wú)法正常啟動(dòng),從而導(dǎo)致銀行的多個(gè)業(yè)務(wù)都無(wú)法正常班理。所以我們會(huì)==按照功能==將項(xiàng)目進(jìn)行拆分。

(2)按照模塊拆分

比如電商的項(xiàng)目中,有訂單和商品兩個(gè)模塊,訂單中需要包含商品的詳細(xì)信息,所以需要商品的模型類,商品模塊也會(huì)用到商品的模型類,這個(gè)時(shí)候如果兩個(gè)模塊中都寫(xiě)模型類,就會(huì)出現(xiàn)重復(fù)代碼,后期的維護(hù)成本就比較高。我們就想能不能將它們公共的部分抽取成一個(gè)獨(dú)立的模塊,其他模塊要想使用可以像添加第三方j(luò)ar包依賴一樣來(lái)使用我們自己抽取的模塊,這樣就解決了代碼重復(fù)的問(wèn)題,這種拆分方式就說(shuō)我們所說(shuō)的==按照模塊==拆分。

依賴管理

我們現(xiàn)在已經(jīng)能把項(xiàng)目拆分成一個(gè)個(gè)獨(dú)立的模塊,當(dāng)在其他項(xiàng)目中想要使用獨(dú)立出來(lái)的這些模塊,只需要在其pom.xml使用標(biāo)簽來(lái)進(jìn)行jar包的引入即可。

其實(shí)就是依賴,關(guān)于依賴管理里面都涉及哪些內(nèi)容,我們就一個(gè)個(gè)來(lái)學(xué)習(xí)下:

依賴傳遞可選依賴排除依賴

我們先來(lái)說(shuō)說(shuō)什么是依賴:

依賴指當(dāng)前項(xiàng)目運(yùn)行所需的jar,一個(gè)項(xiàng)目可以設(shè)置多個(gè)依賴。

因?yàn)橛幸蕾噦鬟f的存在,就會(huì)導(dǎo)致jar包在依賴的過(guò)程中出現(xiàn)沖突問(wèn)題,具體什么是沖突?Maven是如何解決沖突的?

這里所說(shuō)的==依賴沖突==是指項(xiàng)目依賴的某一個(gè)jar包,有多個(gè)不同的版本,因而造成類包版本沖突。

特殊優(yōu)先:當(dāng)同級(jí)配置了相同資源的不同版本,后配置的覆蓋先配置的。路徑優(yōu)先:當(dāng)依賴中出現(xiàn)相同的資源時(shí),層級(jí)越深,優(yōu)先級(jí)越低,層級(jí)越淺,優(yōu)先級(jí)越高聲明優(yōu)先:當(dāng)資源在相同層級(jí)被依賴時(shí),配置順序靠前的覆蓋配置順序靠后的

可選依賴

可選依賴指對(duì)外隱藏當(dāng)前所依賴的資源---不透明

例如在maven_04_dao的pom.xml,在引入maven_03_pojo的時(shí)候,添加optional

true

排除依賴

排除依賴指主動(dòng)斷開(kāi)依賴的資源,被排除的資源無(wú)需指定版本---不需要

......

聚合和繼承

聚合

我們的項(xiàng)目已經(jīng)從以前的單模塊,變成了現(xiàn)在的多模塊開(kāi)發(fā)。項(xiàng)目一旦變成了多模塊開(kāi)發(fā)以后,就會(huì)引發(fā)一些問(wèn)題,在這一節(jié)中我們主要會(huì)學(xué)習(xí)兩個(gè)內(nèi)容聚合和繼承,用這兩個(gè)知識(shí)來(lái)解決下分模塊后的一些問(wèn)題。

==聚合==

所謂聚合:將多個(gè)模塊組織成一個(gè)整體,同時(shí)進(jìn)行項(xiàng)目構(gòu)建的過(guò)程稱為聚合聚合工程:通常是一個(gè)不具有業(yè)務(wù)功能的"空"工程(有且僅有一個(gè)pom文件)作用:使用聚合工程可以將多個(gè)工程編組,通過(guò)對(duì)聚合工程進(jìn)行構(gòu)建,實(shí)現(xiàn)對(duì)所包含的模塊進(jìn)行同步構(gòu)建

當(dāng)工程中某個(gè)模塊發(fā)生更新(變更)時(shí),必須保障工程中與已更新模塊關(guān)聯(lián)的模塊同步更新,此時(shí)可以使用聚合工程來(lái)解決批量模塊同步構(gòu)建的問(wèn)題。

關(guān)于聚合具體的實(shí)現(xiàn)步驟為:

步驟1:創(chuàng)建一個(gè)空的maven項(xiàng)目

步驟2:將項(xiàng)目的打包方式改為pom

說(shuō)明:項(xiàng)目的打包方式,我們接觸到的有三種,分別是

jar:默認(rèn)情況,說(shuō)明該項(xiàng)目為java項(xiàng)目war:說(shuō)明該項(xiàng)目為web項(xiàng)目pom:說(shuō)明該項(xiàng)目為聚合或繼承(后面會(huì)講)項(xiàng)目

步驟3:pom.xml添加所要管理的項(xiàng)目

../maven_02_ssm

../maven_03_pojo

../maven_04_dao

步驟4:使用聚合統(tǒng)一管理項(xiàng)目

當(dāng)compile被點(diǎn)擊后,所有被其管理的項(xiàng)目都會(huì)被執(zhí)行編譯操作。這就是聚合工程的作用。

說(shuō)明:聚合工程管理的項(xiàng)目在進(jìn)行運(yùn)行的時(shí)候,會(huì)按照項(xiàng)目與項(xiàng)目之間的依賴關(guān)系來(lái)自動(dòng)決定執(zhí)行的順序和配置的順序無(wú)關(guān)。

聚合的知識(shí)我們就講解完了,最后總結(jié)一句話就是,聚合工程主要是用來(lái)管理項(xiàng)目。

繼承

所謂繼承:描述的是兩個(gè)工程間的關(guān)系,與java中的繼承相似,子工程可以繼承父工程中的配置信息,常見(jiàn)于依賴關(guān)系的繼承。作用:

簡(jiǎn)化配置減少版本沖突

步驟1:創(chuàng)建一個(gè)空的Maven項(xiàng)目并將其打包方式設(shè)置為pom

因?yàn)檫@一步和前面maven創(chuàng)建聚合工程的方式是一摸一樣,所以我們可以單獨(dú)創(chuàng)建一個(gè)新的工程,也可以直接和聚合公用一個(gè)工程。實(shí)際開(kāi)發(fā)中,聚合和繼承一般也都放在同一個(gè)項(xiàng)目中,但是這兩個(gè)的功能是不一樣的。

步驟2:在子項(xiàng)目中設(shè)置其父工程

分別在maven_02_ssm,maven_03_pojo,maven_04_dao的pom.xml中添加其父項(xiàng)目為maven_01_parent

com.itheima

maven_01_parent

1.0-RELEASE

../maven_01_parent/pom.xml

步驟3:優(yōu)化子項(xiàng)目共有依賴導(dǎo)入問(wèn)題

將子項(xiàng)目共同使用的jar包都抽取出來(lái),維護(hù)在父項(xiàng)目的pom.xml中

刪除子項(xiàng)目中已經(jīng)被抽取到父項(xiàng)目的pom.xml中的jar包,如在maven_02_ssm的pom.xml中將已經(jīng)出現(xiàn)在父項(xiàng)目的jar包刪除掉

步驟4:優(yōu)化子項(xiàng)目依賴版本問(wèn)題

在父工程mavne_01_parent的pom.xml來(lái)定義依賴管理

junit

junit

4.12

test

將maven_02_ssm的pom.xml中的junit依賴刪除掉,刷新Maven

刷新完會(huì)發(fā)現(xiàn),在maven_02_ssm項(xiàng)目中的junit依賴并沒(méi)有出現(xiàn),所以我們得到一個(gè)結(jié)論:

標(biāo)簽不真正引入jar包,而是配置可供子項(xiàng)目選擇的jar包依賴

子項(xiàng)目要想使用它所提供的這些jar包,需要自己添加依賴,并且不需要指定

在maven_02_ssm的pom.xml添加junit的依賴

junit

junit

test

注意:這里就不需要添加版本了,這樣做的好處就是當(dāng)父工程dependencyManagement標(biāo)簽中的版本發(fā)生變化后,子項(xiàng)目中的依賴版本也會(huì)跟著發(fā)生變化

總結(jié)來(lái)說(shuō),繼承可以幫助做兩件事

將所有項(xiàng)目公共的jar包依賴提取到父工程的pom.xml中,子項(xiàng)目就可以不用重復(fù)編寫(xiě),簡(jiǎn)化開(kāi)發(fā)將所有項(xiàng)目的jar包配置到父工程的dependencyManagement標(biāo)簽下,實(shí)現(xiàn)版本管理,方便維護(hù)

dependencyManagement標(biāo)簽不真正引入jar包,只是管理jar包的版本子項(xiàng)目在引入的時(shí)候,只需要指定groupId和artifactId,不需要加version當(dāng)dependencyManagement標(biāo)簽中jar包版本發(fā)生變化,所有子項(xiàng)目中有用到該jar包的地方對(duì)應(yīng)的版本會(huì)自動(dòng)隨之更新

最后總結(jié)一句話就是,父工程主要是用來(lái)快速配置依賴jar包和管理項(xiàng)目中所使用的資源。

聚合與繼承的區(qū)別

兩種之間的作用:

聚合用于快速構(gòu)建項(xiàng)目,對(duì)項(xiàng)目進(jìn)行管理繼承用于快速配置和管理子項(xiàng)目中所使用jar包的版本

聚合和繼承的相同點(diǎn):

聚合與繼承的pom.xml文件打包方式均為pom,可以將兩種關(guān)系制作到同一個(gè)pom文件中聚合與繼承均屬于設(shè)計(jì)型模塊,并無(wú)實(shí)際的模塊內(nèi)容

聚合和繼承的不同點(diǎn):

聚合是在當(dāng)前模塊中配置關(guān)系,聚合可以感知到參與聚合的模塊有哪些繼承是在子模塊中配置關(guān)系,父模塊無(wú)法感知哪些子模塊繼承了自己

柚子快報(bào)邀請(qǐng)碼778899分享:java maven學(xué)習(xí)筆記

http://yzkb.51969.com/

好文鏈接

評(píng)論可見(jiàn),查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://m.gantiao.com.cn/post/19566226.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問(wèn)

文章目錄