摘要:一什么是是一款軟件項(xiàng)目管理和理解工具。基于項(xiàng)目對(duì)象模型的概念,通過添加一小段描述來管理項(xiàng)目的構(gòu)建。另外如果子模塊中指定了版本號(hào),那么會(huì)使用子模塊中指定的版本。
一、什么是Maven?
Maven是一款軟件項(xiàng)目管理和理解工具。基于項(xiàng)目對(duì)象模型(POM)的概念,通過添加一小段描述來管理項(xiàng)目的構(gòu)建。
二、為什么要使用Maven?
以前在用Java開發(fā)一個(gè)項(xiàng)目時(shí),往往需要引入幾十或者上百個(gè)Jar包,那么這些Jar可能分散在不同的地址,我們需要一個(gè)一個(gè)去下載,然后在導(dǎo)入到我們項(xiàng)目中!有時(shí)一個(gè)Jar包找到合適的版本可能需要幾個(gè)小時(shí)。更讓人痛苦的是一個(gè)大項(xiàng)目開發(fā)需要多人協(xié)同開發(fā)。那么項(xiàng)目依賴的Jar包就需要有一份公共的來解決不同人引入相同的Jar不同版本的依賴從而導(dǎo)致沖突。
現(xiàn)在使用Maven來構(gòu)建,Maven通過一個(gè)POM文件來管理項(xiàng)目依賴,只要在POM中加入想要的Jar包依賴,Maven會(huì)在本地倉庫中查找依賴包。如果本地沒有找到就會(huì)從配置的私服中下載依賴,沒有配置私服Maven就會(huì)從Maven的中央倉庫(99%的開源項(xiàng)目都可以在Maven中央倉庫中找到)中去找到指定版本的Jar包。
三、約定規(guī)范
web : 項(xiàng)目名稱
src : 源代碼和測試代碼的根目錄
main : 應(yīng)用代碼目錄
java : 源代碼目錄
resources : 配置文件目錄
test : 測試代碼目錄
testResources : 測試使用的配置文件
webapp : 當(dāng)你的項(xiàng)目是一個(gè)web項(xiàng)目時(shí)才會(huì)需要這個(gè)文件夾,里面都是存放項(xiàng)目靜態(tài)文件。如果你的項(xiàng)目是jar項(xiàng)目那就不需要這個(gè)目錄了。
target : 項(xiàng)目打包時(shí)maven自動(dòng)幫我們創(chuàng)建的目錄,里面就是打包好的項(xiàng)目文件
pom.xml : 這就是配置項(xiàng)目依賴的地方。一次配置,不管以后代碼給誰,都可以運(yùn)行起來。
四、實(shí)例
4.0.0 com.test maven-test 1.0-SNAPSHOT war maven-test Maven Webapp http://www.example.com UTF-8 1.7 1.7 /** * POM文件中使用的變量聲明 * 可以在這里聲明各種文件的版本號(hào) * 例如 :4.3.9.RELEASE * 在下面的依賴引入時(shí)可以聲明一個(gè)公共版本 */4.3.9.RELEASE /** * 一個(gè) dependency 為一個(gè)依賴 * groupId : 項(xiàng)目組織唯一的標(biāo)識(shí)符,對(duì)應(yīng)JAVA的包的結(jié)構(gòu),在main目錄里面java的目錄結(jié)構(gòu) (groupId可以多個(gè)項(xiàng)目使用一個(gè)) * artifactId : 項(xiàng)目的唯一的標(biāo)識(shí)符,實(shí)際對(duì)應(yīng)項(xiàng)目的名稱,就是項(xiàng)目根目錄的名稱。(每個(gè)項(xiàng)目中同樣的版本只能有一個(gè)) */ org.springframework spring-core ${spring.version} org.springframework spring-context ${spring.version} org.springframework spring-beans ${spring.version} maven-test /** * 這邊是maven插件配置 * 需要打包jar時(shí),就需要配置mainClass * 多模塊時(shí),需要配置子模塊文件引入插件 */ maven-clean-plugin 3.0.0 maven-resources-plugin 3.0.2 maven-compiler-plugin 3.7.0 maven-surefire-plugin 2.20.1 maven-war-plugin 3.2.0 maven-install-plugin 2.5.2 maven-deploy-plugin 2.8.2
五、模塊化項(xiàng)目管理
Maven模塊化項(xiàng)目管理,適用于一些比較大的項(xiàng)目,通過功能的模塊拆分,實(shí)現(xiàn)代碼的解耦合,便于代碼的復(fù)用和維護(hù)及管理。開源框架在便于閱讀源碼前提下基本都是采用模塊化的方式,提供模塊集成,用戶可以根據(jù)需求配置指定的模塊。
父模塊配置:
子模塊配置:
父模塊配置dependencies與dependencyManagement的區(qū)別 :
dependencies : 在子模塊中不寫該依賴項(xiàng),那么子模塊仍然會(huì)從父模塊中繼承該依賴項(xiàng)(全部繼承,上面使用的截圖就是dependencies)
dependencyManagement : 父模塊里只是聲明依賴(在dependencies外層在包一個(gè)dependencyManagement標(biāo)簽說明),并不實(shí)現(xiàn)引入,因此子模塊需要顯示的聲明需要用的依賴。如果不在子模塊中聲明依賴,是不會(huì)從父模塊中繼承下來的;只有在子模塊中寫了該依賴項(xiàng),并且沒有指定具體版本,才會(huì)從父模塊中繼承該項(xiàng),并且version和scope都讀取自父pom。另外如果子模塊中指定了版本號(hào),那么會(huì)使用子模塊中指定的Jar版本。
部分信息參考來自網(wǎng)絡(luò).
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/71204.html
摘要:項(xiàng)目根目錄項(xiàng)目名項(xiàng)目版本號(hào)項(xiàng)目目錄打包的名字二依賴管理概述通過在配置依賴坐標(biāo),會(huì)自動(dòng)幫我們下載依賴的構(gòu)件。關(guān)于父模塊的依賴配置注意兩點(diǎn)一般都是通過來配置所有依賴及其版本號(hào),然后子模塊,在自己的文件中聲明依賴即可,不用再指定版本,以確保統(tǒng)一。 一、Maven 1.1 為什么寫Maven 工欲善其事,必先利其器。如今Java相關(guān)開發(fā),基本離不開Maven、Gradle、MAT、Hudson...
摘要:學(xué)習(xí)筆記先生,您在寫代碼嗎不,我們正在完成一項(xiàng)偉大的工程。于是打算重新學(xué)習(xí)一下。中央倉庫鏡像為了分擔(dān)中央倉庫的流量,提升用戶的訪問速度。生成項(xiàng)目報(bào)告,站點(diǎn),發(fā)布站點(diǎn)。修改源碼后也需要逐個(gè)手動(dòng)進(jìn)行操作。 maven學(xué)習(xí)筆記 先生,您在寫代碼嗎? 不,我們正在完成一項(xiàng)偉大的工程。 前言 在剛學(xué)maven時(shí),我就把maven當(dāng)作一個(gè)引入jar包的工具而已,以前是自己下載jar包,現(xiàn)在是只用...
摘要:的主要思想是約定優(yōu)于配置。強(qiáng)烈建議遵循以上規(guī)范,避免不必要的麻煩。依賴傳遞依賴范圍除了控制,還會(huì)對(duì)依賴傳遞產(chǎn)生影響。此外還提供了和來進(jìn)一步管理依賴,分別稱為可選依賴和排除依賴。 showImg(https://segmentfault.com/img/remote/1460000012363876?w=1240&h=698); Maven 是跨平臺(tái)的項(xiàng)目管理工具,主要服務(wù)于基于Java...
摘要:繼承作用就是避免配置重復(fù),對(duì)于子項(xiàng)目來說應(yīng)該關(guān)心父項(xiàng)目是怎么樣配置的。聚合字面理解就是聚在一起合作完成工作,就是將子模塊聚集起來完成相應(yīng)的項(xiàng)目需求父工程的搭建項(xiàng)目結(jié)構(gòu)在父工程中,主要負(fù)責(zé)完成依賴的版本管理,并不是實(shí)際的依賴。 從大二開始就一直關(guān)注segmentFault,在問題專區(qū)幫忙回答一些自己知曉的問題;在寫這篇文章之前我一直會(huì)在朋友圈發(fā)一些自己遇到的問題以及解決辦法,這是第一次寫...
摘要:創(chuàng)建項(xiàng)目點(diǎn)擊創(chuàng)建項(xiàng)目,點(diǎn)擊下一步填寫組名項(xiàng)目項(xiàng)目版本填寫本地項(xiàng)目和目錄名稱,點(diǎn)擊創(chuàng)建好的項(xiàng)目目錄結(jié)構(gòu)如下一般多模塊開發(fā)中父模塊都是不帶目錄的,手動(dòng)刪除目錄,刪除之后的目錄如下至此父模塊已經(jīng)創(chuàng)建完成。 公司的項(xiàng)目使用idea進(jìn)行maven的多模塊開發(fā),由于接觸intellij Idea沒有多長時(shí)間,對(duì)好多功能都不太清楚,就在網(wǎng)上瀏覽帖子學(xué)習(xí),在此過程中總感覺帖子寫的不夠詳細(xì),在途中踩了很...
閱讀 3205·2021-09-29 09:34
閱讀 3560·2021-09-10 10:51
閱讀 1958·2021-09-10 10:50
閱讀 6759·2021-08-12 13:31
閱讀 3006·2019-08-30 15:54
閱讀 1577·2019-08-30 15:44
閱讀 1434·2019-08-29 12:26
閱讀 2661·2019-08-26 18:36