maven構(gòu)件:artifact
生命周期階段:phase
插件:plugin ->:單個(gè)或多個(gè)目標(biāo)的集合
插件目標(biāo):goal ->一個(gè)目標(biāo)是一個(gè)明確的任務(wù),可以作為單獨(dú)的目標(biāo)運(yùn)行,或者作為一個(gè)大的構(gòu)建的一部分和其他目標(biāo)一起運(yùn)行
###Hello World:
①使用maven創(chuàng)建工程:mvn -B archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=com.companyname.maven.study -DartifactId=exer1 -DpackageName=com.companyname.maven.study
命令詳解:
mvn:是maven2的命令
archetype:generate稱(chēng)為一個(gè) maven 目標(biāo),描述了將會(huì)在構(gòu)建中完成的工作單元(unit of work)
-Dname=value:傳入目標(biāo)中的參數(shù),
####pom.xml文件:
groupId , artifactId , ?packaging , ?version,是maven的坐標(biāo),他們唯一標(biāo)識(shí)了一個(gè)項(xiàng)目
name , url 是POM提供的描述下元素
dependencies:定義項(xiàng)目的依賴(lài)
####生命周期:包含在一個(gè)項(xiàng)目構(gòu)建中的一系列有序的階段
生命周期階段(phase):“構(gòu)建生命周期中的一個(gè)步驟”,可以用生命周期階段作為參數(shù)來(lái)運(yùn)行 maven
注意:maven執(zhí)行一個(gè)階段的時(shí)候,回依次有序的執(zhí)行前面的所有階段,到命令指定的那個(gè)階段為止。
####maven坐標(biāo)(coordinates):用來(lái)唯一標(biāo)識(shí)一個(gè)項(xiàng)目
groupId:團(tuán)體、小組、組織、項(xiàng)目或其他團(tuán)體,團(tuán)體標(biāo)識(shí)的約定是,以創(chuàng)建這個(gè)項(xiàng)目的組織名稱(chēng)的逆向域名開(kāi)頭
artifact:在groupId下的表示一個(gè)單獨(dú)的項(xiàng)目的唯一標(biāo)識(shí)符
version:一個(gè)項(xiàng)目的特定版本
maven倉(cāng)庫(kù):是一個(gè)項(xiàng)目構(gòu)件的集合
####依賴(lài)管理(Dependency Management):
一個(gè)項(xiàng)目將會(huì)包含很多依賴(lài),也有可能包含依賴(lài)于其他構(gòu)件的依賴(lài),但是不用擔(dān)心,maven 有一個(gè)強(qiáng)大的功能:支持傳遞依賴(lài)(transitive dependen)。你不必找出所有這些依賴(lài)然后把它們寫(xiě)在你的 pom.xml 里,你只需要加上你直接依賴(lài)的那些庫(kù),Maven會(huì)隱式的把這些庫(kù)間接依賴(lài)的庫(kù)也加入到你的項(xiàng)目中。Maven也會(huì)處理這些依賴(lài)中的沖突,同時(shí)能讓你自定義默認(rèn)行為,或者排除一些
定的傳遞性依賴(lài)。
###mvn:site:生成站點(diǎn)和報(bào)告。
site生命周期階段不像默認(rèn)生命周期階段那樣管理代碼的生成,操作資源、編譯、打包等等,site生命周期只關(guān)心處理在src/site目錄下的site類(lèi)容。
Maven Exec 插件:Exec插件允許你運(yùn)行Java類(lèi)和其他腳本,想要查看它的完整描述,可以執(zhí)行:mvn help:describe -Dplugin=exec -Dfull
mvn dependency:resolve:瀏覽項(xiàng)目依賴(lài)
mvn dependency:tree:瀏覽依賴(lài)樹(shù)
如果想要查看完整的依賴(lài)蹤跡,包含那些因?yàn)闆_突或者其它原因而被拒絕引入的構(gòu)件,打開(kāi) Maven 的調(diào)試標(biāo)記運(yùn)行:mvn install -X
###執(zhí)行測(cè)試:mvn test
如果想要忽略失敗的測(cè)試,讓即使測(cè)試失敗仍然可以產(chǎn)生構(gòu)建輸出,可以設(shè)置 ?Surefire 的 testFailureIgnore 這個(gè)屬性為 true:
mvn test -Dmaven.test.failure.ignore=true
如果想要跳過(guò)單元測(cè)試,只需要使用Surefire 插件的 skip 參數(shù):mvn install -Dmaven.test.skip=true。也可以通過(guò)配置pom.xml實(shí)現(xiàn):
使用 Maven Assembly 插件的預(yù)定義裝配描述符生成一個(gè)可分發(fā)的 JAR 文件:
Maven Assembly插件是一個(gè)用來(lái)創(chuàng)建你應(yīng)用程序特有分發(fā)包的插件,你可以使用該插件以你希望的任何形式來(lái)裝配輸出,只需定義一個(gè)自定義的裝配描述符。
要配置Maven Assembly插件,需要在 pom.xml 中添加如下配置:
添加好配置之后,可以通過(guò)運(yùn)行 mvn assembly:assembly 來(lái)構(gòu)建這個(gè)裝配。