maven上傳jar到nexus本地倉庫


一、nexus新增本地倉庫

Hosted Repository:本地倉庫,部署組織內部的版本內容
Proxy Repository:代理倉庫,代理遠程的公共倉庫,如maven中央倉庫
Virtual Repository:虛擬倉庫,為了兼容maven1
Repository Group:倉庫組,用來合並多個hosted/proxy倉庫

在nexus網站左側點擊"Repositories"菜單,右側點擊"add"按鈕,新增"Hosted Repository"本地倉庫存放發布版本內容:

"Deployment Policy"要選擇"Allow Redeploy"

還可以再建一個"ctxsdhy-hosted-snapshot"庫存放快照版本內容:

兩者的區別:

release:策略為release的宿主倉庫、用來部署組織內部的發布版本內容。
snapshot:策略為snapshot的宿主倉庫、用來部署組織內部的快照版本內容。
maven中的倉庫分為snapshot快照倉庫和release發布倉庫兩種,snapshot快照倉庫用於保存開發過程中的不穩定版本,release正式倉庫則是用來保存穩定的發行版本。
定義一個組件/模塊為快照版本,只需要在pom文件中在該模塊的版本號后加上-SNAPSHOT即可(這里必須是大寫)
maven2會根據模塊的版本號(pom文件中的version)中是否帶有-SNAPSHOT來判斷是快照版本還是正式版本。如果是快照版本,那么在mvn deploy時會自動發布到快照版本庫中,而使用快照版本的模塊,在不更改版本號的情況下,直接編譯打包時,maven會自動從鏡像服務器上下載最新的快照版本。如果是正式發布版本,那么在mvn deploy時會自動發布到正式版本庫中,而使用正式版本的模塊,在不更改版本號的情況下,編譯打包時如果本地已經存在該版本的模塊則不會主動去鏡像服務器上下載。
所以,我們在開發階段,可以將公用庫的版本設置為快照版本,而被依賴組件則引用快照版本進行開發,在公用庫的快照版本更新后,我們也不需要修改pom文件提示版本號來下載新的版本,直接mvn執行相關編譯、打包命令即可重新下載最新的快照庫了,從而也方便了我們進行開發。

 

二、修改settings.xml文件

在"settings.xml"的"<mirrors>"節點中增加:

<mirror>  
	<id>ctxsdhy-hosted-release</id>  
	<mirrorOf>*</mirrorOf>  
	<name>ctxsdhy-hosted-release</name>  
	<url>http://121.40.196.187:8081/nexus/content/repositories/ctxsdhy-hosted-release/</url>  
</mirror>
<mirror>  
	<id>ctxsdhy-hosted-snapshot</id>  
	<mirrorOf>*</mirrorOf>  
	<name>ctxsdhy-hosted-snapshot</name>  
	<url>http://121.40.196.187:8081/nexus/content/repositories/ctxsdhy-hosted-snapshot/</url>  
</mirror>

在"<servers>"節點中增加登錄的憑證(可以是deployment賬戶的):

<server>
	<id>ctxsdhy-hosted-snapshot</id>
	<username>admin</username>
	<password>123456</password>
</server>
<server>
	<id>ctxsdhy-hosted-release</id>
	<username>admin</username>
	<password>123456</password>
</server>

 

三、修改項目pom.xml文件

在項目的"pom.xml"文件里增加一段:

<distributionManagement>
	<repository>
		<id>ctxsdhy-hosted-release</id>
		<name>ctxsdhy-hosted-release</name>
		<url>http://121.40.196.187:8081/nexus/content/repositories/ctxsdhy-hosted-release/</url>
	</repository>
	<snapshotRepository>
		<id>ctxsdhy-hosted-snapshot</id>
		<name>ctxsdhy-hosted-snapshot</name>
		<url>http://121.40.196.187:8081/nexus/content/repositories/ctxsdhy-hosted-snapshot/</url>
	</snapshotRepository>
</distributionManagement>

id要和"settings.xml"文件中的相對應

 

四、deploy部署項目

在eclipse中右鍵項目—>Debug As—>Maven build..—>在Goals輸入框中輸入"deploy -e":

-e可以在出現異常的時候打印完整的異常信息,可以勾選"Debug Output"查看更多信息

 

Console的結果顯示部署成功:

可以在nexus中看到提交的jar、war包:

這種方式在團隊開發多模塊項目的時候會很常用

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM