一:常用命令:
清空:mvn clean
編譯:mvn compile
打包:mvn package
打包并安裝到本地倉庫: mvn install
打包并部署到遠(yuǎn)程倉庫: mvn deploy
只打包不測試:mvn -Dtest package
mvn -Dmaven.test.skip=true package
snapshots包強(qiáng)制更新: mvn package -u
傳遞參數(shù):mvn package -DskipUserTest=true
分析項目的依賴信息:mvn dependency:analyze 或 mvn dependency:tree
清除eclipse系統(tǒng)設(shè)置:mvn eclipse:clean
生成eclipse項目文件: mvn eclipse:eclipse
清除idea系統(tǒng)設(shè)置:mvn idea:clean
生成idea項目:mvn idea:idea
離線打包: mvn package -o
下載項目里所依賴的jar包的源碼:mvn dependency:sources
二: 配置文件
- setting.xml:
- pom.xml:本地pom文件
- pom-4.0.0.xml :超級pom文件
三者關(guān)系:
setting.xml中的repositories用于下載
pom.xml中的用于上傳,上傳用到的用戶名和密碼要保存在setting.xml中
setting.xml和pom.xml中的central可以覆蓋超級pom文件
文件地址
apache-maven-2.2.1\lib\maven-2.2.1-uber\org\apache\maven\project\pom-4.0.0.xml
apache-maven-2.2.1\conf\setting.xml
maven坐標(biāo)是通過一些元素定義的焊夸,而classifier是不能直接定義的。
(1).groupId,定義當(dāng)前maven項目隸屬的實際項目皱埠。
(2).artifactId,定義實際項目中的一個maven項目(模塊)
(3).version,定義maven當(dāng)前所處的版本姐帚。
(4).packaging,定義maven項目的打包方式。
其中:依賴范圍:
maven依賴調(diào)解的兩個原則。
第一原則是:路徑最近者優(yōu)先霉晕。
第二原則是:第一聲明者優(yōu)先。
三:profile配置
Profile 的作用是允許你在項目文件(pom.xml)里定義若干個 profile 段捞奕,然后在編譯時選擇其中的一個用于覆蓋項目文件原先的定義牺堰。
在編譯項目時,可以使用 -P 參數(shù)指定需要使用的 profile 的 id,假如不指定 -P 參數(shù)的話颅围,則會使用 activeByDefault=true 的一項伟葫。filtering替換:
filtering功能主要用來替換項目中的資源文件(.xml、.properties)當(dāng)中的${...}spring的property-placeholder替換:
指spring容器執(zhí)行后替換資源文件(*.xml)當(dāng)中的${...}
四:maven 與倉庫
一:倉庫分類:
1.本地倉庫:
2.遠(yuǎn)程倉庫:中央倉庫 私服 其它公共庫
3.中央倉庫id=central,可以被蓋院促;
二:nexus倉庫實現(xiàn):
nexus的倉庫類型分為以下四種:
1.group: 倉庫組 --虛庫:組合其它倉庫
2.hosted:宿主 --Releases Snapshots
3.proxy:代理 --代理遠(yuǎn)程公共倉庫http://repo1.maven.org/maven2
4.virtual:虛擬 --虛庫:link到其實(非group)倉庫
nexus內(nèi)置倉庫
- Public Repositories:將其它倉庫聚合并通過一致的地址提供服務(wù)
- Central: 用來代理maven中央倉庫中發(fā)布版本構(gòu)件的倉庫
- Releases: 用來部署管理內(nèi)部的發(fā)布版本構(gòu)件的宿主類型倉庫
- Snapshots:用來部署管理內(nèi)部的快照版本構(gòu)件的宿主類型倉庫
五:插件
一:常用插件:
1.maven-surefire-plugin 與 testNG
testNG 比JUnit 的優(yōu)勢:支持測試組
使用方式
@Test(groups={"util","midium"})
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
<configuration>
<groups>util,midium</groups>
</configuration>
</plugin>
官方使用說明:
http://maven.apache.org/surefire/maven-surefire-plugin/examples/skipping-tests.html
2.versions-maven-plugin
http://www.mojohaus.org/versions-maven-plugin/examples/use-releases.html
二.自定義插件:
統(tǒng)計代碼行:maven-loc-plugin: https://github.com/lesline/maven-loc-plugin
替換pom內(nèi)容: maven-loc-plugin: https://github.com/lesline/maven-pom-plugin
使用命令:
mvn com.juvenxu.mvnbook:maven-loc-plugin:0.0.1-SNAPSHOT:count
mvn com.eloancn:maven-pom-plugin:0.0.5:release
可選方案:
1筏养、dependencyManagement 中 加dependency時 type=import ,可以引入相同的配置
2常拓、mvn clean deploy -pl center-acct-api:只deploy center-acct-api
3渐溶、maven-surefire-plugin 與 testNG