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

首頁綜合 正文
目錄

柚子快報邀請碼778899分享:java maven學(xué)習(xí)筆記

柚子快報邀請碼778899分享:java maven學(xué)習(xí)筆記

http://yzkb.51969.com/

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

基礎(chǔ)

maven的作用

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

Maven生命周期命令

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

高級

分模塊開發(fā)設(shè)計

(1)按照功能拆分

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

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

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

(2)按照模塊拆分

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

依賴管理

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

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

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

我們先來說說什么是依賴:

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

因為有依賴傳遞的存在,就會導(dǎo)致jar包在依賴的過程中出現(xiàn)沖突問題,具體什么是沖突?Maven是如何解決沖突的?

這里所說的==依賴沖突==是指項目依賴的某一個jar包,有多個不同的版本,因而造成類包版本沖突。

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

可選依賴

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

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

true

排除依賴

排除依賴指主動斷開依賴的資源,被排除的資源無需指定版本---不需要

......

聚合和繼承

聚合

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

==聚合==

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

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

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

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

步驟2:將項目的打包方式改為pom

說明:項目的打包方式,我們接觸到的有三種,分別是

jar:默認情況,說明該項目為java項目war:說明該項目為web項目pom:說明該項目為聚合或繼承(后面會講)項目

步驟3:pom.xml添加所要管理的項目

../maven_02_ssm

../maven_03_pojo

../maven_04_dao

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

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

說明:聚合工程管理的項目在進行運行的時候,會按照項目與項目之間的依賴關(guān)系來自動決定執(zhí)行的順序和配置的順序無關(guān)。

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

繼承

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

簡化配置減少版本沖突

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

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

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

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

com.itheima

maven_01_parent

1.0-RELEASE

../maven_01_parent/pom.xml

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

將子項目共同使用的jar包都抽取出來,維護在父項目的pom.xml中

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

步驟4:優(yōu)化子項目依賴版本問題

在父工程mavne_01_parent的pom.xml來定義依賴管理

junit

junit

4.12

test

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

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

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

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

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

junit

junit

test

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

總結(jié)來說,繼承可以幫助做兩件事

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

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

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

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

兩種之間的作用:

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

聚合和繼承的相同點:

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

聚合和繼承的不同點:

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

柚子快報邀請碼778899分享:java maven學(xué)習(xí)筆記

http://yzkb.51969.com/

好文鏈接

評論可見,查看隱藏內(nèi)容

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

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

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

發(fā)布評論

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

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機訪問

文章目錄