私服是什么
私服,私有服務器,是公司內部Maven項目經常需要的東東,不總結一下,不足以體現出重視。Nexus是常用的私用Maven服務器,一般是公司內部使用。下載地址是http://www.sonatype.org/nexus/go,默認端口8081,這里我選擇最新版nexus-2.5.0-04。
常用功能
Nexus常用功能就是:指定私服的中央地址、將自己的Maven項目指定到私服地址、從私服下載中央庫的項目索引、從私服倉庫下載依賴組件、將第三方項目jar上傳到私服供其他項目組使用。
開啟Nexus服務后訪問url地址http://localhost:8081/nexus/(推薦使用自己的ip地址),之后登錄系統,用戶名密碼分別是:admin/admin123.
最頻繁的就是點擊左側菜單欄的Repositories按鈕

一般用到的倉庫種類是hosted、proxy。Hosted代表宿主倉庫,用來發布一些第三方不允許的組件,比如Oracle驅動、比如商業軟件jar包。Proxy代表代理遠程的倉庫,最典型的就是Maven官方中央倉庫、JBoss倉庫等等。如果構建的Maven項目本地倉庫沒有依賴包,那么就會去這個代理站點去下載,那么如果代理站點也沒有此依賴包,就回去遠程中央倉庫下載依賴,這些中央倉庫就是proxy。代理站點下載成功后再下載至本機。筆者認為,其實Maven這個自帶的默認倉庫一般情況下已經夠大多數項目使用了。特殊情況時在配置新的倉庫,指定url即可,一般熟悉ExtJS的人操作這個Nexus都沒什么問題,單詞不是很難,不明白的查查單詞基本差不多。就是如果Sonatype公司對其做了國際化一的處理就更好了。
| hosted | 類型的倉庫,內部項目的發布倉庫 |
| releases | 內部的模塊中release模塊的發布倉庫 |
| snapshots | 發布內部的SNAPSHOT模塊的倉庫 |
| 3rd party | 第三方依賴的倉庫,這個數據通常是由內部人員自行下載之后發布上去 |
| proxy | 類型的倉庫,從遠程中央倉庫中尋找數據的倉庫 |
| group | 類型的倉庫,組倉庫用來方便我們開發人員進行設置的倉庫 |
maven項目索引
下載Maven項目索引,項目索引是為了使用者能夠在私服站點查找依賴使用的功能

保存后后台會運行一個任務,點擊菜單欄的Scheduled Tasks選項即可看到有個任務在RUNNING。 下載完成后,Maven索引就可以使用了,在搜索欄輸入要搜索的項,就可以查到相關的信息。例如spring-core

就可以檢索出它的相關信息,包括怎么配置依賴信息。我們要想使用這個私服倉庫,先在項目pom中配置相關私服信息
指定倉庫
<repositories>
<repository>
<id>nexus</id>
<name>nexus</name>
<url>http://192.168.1.103:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
這樣只有本項目才在私服下載組件
這樣這個Maven項目構建的時候會從私服下載相關依賴。當然這個配置僅僅是在此項目中生效,對於其他項目還是不起作用。如果相對Maven的其他項目也生效的話。需要修改全局的settings.xml文件。
修改settings.xml為

追加激活profile
<activeProfiles>
<activeProfile>central</activeProfile>
</activeProfiles>
之后所有本機的Maven項目就在私服下載組件。(這樣比較好)
項目的發布
<distributionManagement>
<repository>
<id>user-release</id>
<name>User Project Release</name>
<url>http://192.168.1.103:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>user-snapshots</id>
<name>User Project SNAPSHOTS</name>
<url>http://192.168.1.103:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
注意配置了還是發布項目到私服失敗,原因為沒有權限
配置權限在settings.xml


然后運行發布
clean deploy
在控制台發布成功
然后進入到私服上的倉庫中,看一下確實存在剛剛發布的項目

宿主庫——3rd party
假如我們下載了Oracle的驅動程序jar包想給其他項目組使用,就需要上傳該jar包。選中宿主庫——3rd party,之后選擇Artifact Upload上傳至宿主空間。


最后點擊上傳

via:http://blog.csdn.net/shenshen123jun/article/details/9084293
