groupId : artifactId: version
工程組標(biāo)識(shí):工程標(biāo)識(shí):工程版本號(hào)
maven package:
打包到本項(xiàng)目,一般是在項(xiàng)目target目錄下。
如果a項(xiàng)目依賴于b項(xiàng)目,打包b項(xiàng)目時(shí),只會(huì)打包到b項(xiàng)目下target下,編譯a項(xiàng)目時(shí)就會(huì)報(bào)錯(cuò)。
maven install:
打包到本地倉(cāng)庫(kù)。
如果沒有設(shè)置過maven本地倉(cāng)庫(kù),一般在用戶/.m2目錄下。
如果a項(xiàng)目依賴于b項(xiàng)目,那么install b時(shí),會(huì)在本地倉(cāng)庫(kù)同時(shí)生成pom文件和jar文件,
可以看install b的日志:
[INFO] — maven-install-plugin:2.5.2:install (default-install) @ b —
[INFO] Installing D:\java\workspace\b\target\b-2.7.4.RELEASE.jar to C:\mavenRepository\com**\b\2.7.4.RELEASE\b-2.7.4.RELEASE.jar
[INFO] Installing D:\java\workspace\b\pom.xml to C:\mavenRepository\com**\b\2.7.4.RELEASE\b-2.7.4.RELEASE.pom
maven deploy:
打包上傳到遠(yuǎn)程倉(cāng)庫(kù).
如:私服nexus等,需要配置pom文件
maven 私服簡(jiǎn)介
私服是架設(shè)在局域網(wǎng)的一種特殊的遠(yuǎn)程倉(cāng)庫(kù),目的是代理遠(yuǎn)程倉(cāng)庫(kù)及部署第三方構(gòu)件。
有了私服之后,當(dāng) Maven 需要下載構(gòu)件時(shí),直接請(qǐng)求私服,私服上存在則下載到本地倉(cāng)庫(kù);
否則,私服請(qǐng)求外部的遠(yuǎn)程倉(cāng)庫(kù),將構(gòu)件下載到私服,再提供給本地倉(cāng)庫(kù)下載。
參考鏈接:<http://www.itdecent.cn/p/e4a3ab0298df>
Maven 倉(cāng)庫(kù)有三種類型:
本地(local) 中央(central) 遠(yuǎn)程(remote)
Maven 依賴搜索順序
當(dāng)我們執(zhí)行 Maven 構(gòu)建命令時(shí),Maven 開始按照以下順序查找依賴的庫(kù):
步驟 1 - 在本地倉(cāng)庫(kù)中搜索,如果找不到,執(zhí)行步驟 2,如果找到了則執(zhí)行其他操作。
步驟 2 - 在中央倉(cāng)庫(kù)中搜索,如果找不到,并且有一個(gè)或多個(gè)遠(yuǎn)程倉(cāng)庫(kù)已經(jīng)設(shè)置,
則執(zhí)行步驟 4,如果找到了則下載到本地倉(cāng)庫(kù)中已被將來引用。
步驟 3 - 如果遠(yuǎn)程倉(cāng)庫(kù)沒有被設(shè)置,Maven 將簡(jiǎn)單的停滯處理并拋出錯(cuò)誤(無法找到依賴的文件)。
步驟 4 - 在一個(gè)或多個(gè)遠(yuǎn)程倉(cāng)庫(kù)中搜索依賴的文件,如果找到則下載到本地倉(cāng)庫(kù)已被將來引用,
否則 Maven 將停止處理并拋出錯(cuò)誤(無法找到依賴的文件)。
快照
快照是一個(gè)特殊的版本,它表示當(dāng)前開發(fā)的一個(gè)副本。與常規(guī)版本不同,Maven 為每一次構(gòu)建從遠(yuǎn)程倉(cāng)庫(kù)中檢出一份新的快照版本。
現(xiàn)在數(shù)據(jù)服務(wù)團(tuán)隊(duì)會(huì)將每次更新的代碼的快照(例如 data-service:1.0-SNAPSHOT)發(fā)布到倉(cāng)庫(kù)中,來替換舊的快照 jar 文件。
快照 vs 版本
對(duì)于版本,Maven 一旦下載了指定的版本(例如 data-service:1.0),它將不會(huì)嘗試從倉(cāng)庫(kù)里再次下載一個(gè)新的 1.0 版本。想要下載新的代碼,數(shù)據(jù)服務(wù)版本需要被升級(jí)到 1.1。
對(duì)于快照,每次用戶接口團(tuán)隊(duì)構(gòu)建他們的項(xiàng)目時(shí),Maven 將自動(dòng)獲取最新的快照(data-service:1.0-SNAPSHOT)。