搭建Nexus倉(cāng)庫(kù)
下載并安裝 Nexus Repository Manager OSS 2.x
https://www.sonatype.com/download-oss-sonatype啟動(dòng)Nexus服務(wù)
以管理員身份運(yùn)行
${安裝目錄}\nexus-2.14.4-03\bin\jsw\windows-x86-64\install-nexus.bat
${安裝目錄}\nexus-2.14.4-03\bin\jsw\windows-x86-64\start-nexus.bat訪問(wèn)Nexus服務(wù)
通過(guò)http://localhost:8081/nexus/訪問(wèn)nexus首頁(yè)。默認(rèn)的登錄賬號(hào)密碼為amdin/admin123。
Nexus倉(cāng)庫(kù)介紹
搭建好nexus倉(cāng)庫(kù)后,點(diǎn)擊左側(cè)欄鏈接 <u>Repositories</u>,可以查看nexus倉(cāng)庫(kù),如下圖所示。

nexus管理了多個(gè)倉(cāng)庫(kù),其中3rd party,Releases,Snapshots都是托管倉(cāng)庫(kù),可以上傳構(gòu)件(artifacts)。3rd party用于維護(hù)不存在于公共倉(cāng)庫(kù)中的第三方構(gòu)件,Releases用于維護(hù)穩(wěn)定版構(gòu)件,Snapshots用于維護(hù)開發(fā)版構(gòu)件。
當(dāng)在pom.xml文件中聲明version為xxx-SNAPSHOT,則構(gòu)件被認(rèn)為是Snapshot版本,否則被認(rèn)為是Release版本。當(dāng)項(xiàng)目依賴一個(gè)Release版本的構(gòu)件,這個(gè)構(gòu)件只從遠(yuǎn)程倉(cāng)庫(kù)下載一次,之后不再更新。如果構(gòu)件需要更新,則需要用新的版本號(hào)發(fā)布一次,假設(shè)原來(lái)的版本是test1.0,新發(fā)布的版本可以是test1.1,依賴方通過(guò)修改依賴的版本來(lái)更新。一個(gè)構(gòu)件如果需要頻繁的修改,就不適合用Release版本發(fā)布,而應(yīng)該采用Snapshot版本。Snaphost版本的構(gòu)件可以用同一個(gè)版本號(hào)發(fā)布多次,當(dāng)項(xiàng)目依賴一個(gè)Snapshot版本的構(gòu)件,每次build項(xiàng)目時(shí)都會(huì)獲取最新發(fā)布的構(gòu)件。
關(guān)于Snapshots更詳細(xì)的知識(shí),請(qǐng)參考Maven - Snapshots
新建maven項(xiàng)目
打開eclipse
File->New->Project... 選擇 Maven Project。
在New Maven Project面板中,勾選Create a simple project,進(jìn)入下一步。
輸入Group Id:com.test,Artifact Id:testapp,完成。
參考:Create a New Maven Project in Eclipse
eclipse中配置maven環(huán)境
Window->Preferences。
在Preferences面板中,左側(cè)欄選擇Maven->User Settings,右側(cè)欄User Settings中選擇你的settings.xml。
settings.xml為maven的全局配置文件。
部署maven項(xiàng)目
- pom.xml配置倉(cāng)庫(kù)信息
<distributionManagement>
<repository>
<id>nexus-releases</id>
<url>http://../nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<url>http://../nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
如果構(gòu)件是Release版本,則使用<repository>配置發(fā)布。如果是Snapshot版本,則使用<snapshotRepository>配置發(fā)布,如果沒(méi)有配置<snapshotRepository>,則Snapshot版本的構(gòu)件也會(huì)通過(guò)<repository>配置發(fā)布。
- settings.xml配置倉(cāng)庫(kù)安全信息
<servers>
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
server可以配置多個(gè),每個(gè)server id必須唯一。這里的server id需要和pom.xml中的repository id或者snapshotRepository id對(duì)應(yīng)。
- 在eclipse中部署項(xiàng)目
在Package Explorer面板中選擇項(xiàng)目。
右鍵,在彈出的菜單中選擇Run As->Maven Build...。
在Goals欄輸入clean deploy -X,運(yùn)行。

可能遇到的問(wèn)題:
maven could not transfer artifact 400
解決方法:
1.發(fā)布snapshot版本,而不是release版本。
2.在Nexus倉(cāng)庫(kù)中允許發(fā)布release版本。 解決方法