轉載自:http://blog.csdn.net/lw_power/article/details/46586717java
Nexus服務器用途npm
Nexus服務器是一個代碼包管理的服務器,能夠理解 Nexus 服務器是一個巨大的 Library 倉庫。Nexus 能夠支持管理的工具包括 Maven , npm 等,對於 Java 開發來講,只要用到 Maven 管理就能夠了。緩存
Nexus服務器優勢服務器
傳統的中央倉庫的地理位置比較遠,所以,當公司開發人員數量愈來愈多時,若是不架設一臺本身的Nexus服務器,會產生大量的流量阻塞帶寬,而且在出現一些不可抗緣由(光纜被挖斷)致使沒法鏈接到中央倉庫時,開發就會由於沒法下載相關依賴包而進度停滯。所以在本地環境部署一臺私有的Nexus服務器來緩存全部依賴包,而且將公司內部開發的私有包也部署上去,方便其餘開發人員下載,是很是有必要的。由於 Nexus 有權限控制,所以外部人員是沒法獲得公司內部開發的項目包的。eclipse
將本身的寫的 maven 構件發佈到私服
一、在 pom.xml 文件中聲明
聲明快照發布的宿主倉庫和 release 版本發佈的倉庫。maven
<distributionManagement> <snapshotRepository> <id>maven-nexus-snapshots</id> <name>maven-nexus-snapshots</name> <url> http://192.168.0.116:8081/nexus/content/repositories/snapshots/</url> </snapshotRepository> <repository> <id>maven-nexus-repository</id> <name>maven-nexus-repository</name> <url>http://192.168.0.116:8081/nexus/content/repositories/releases/</url> </repository></distributionManagement>ide
Maven 區別對待 release 版本的構件和 snapshot 版本的構件, snapshot 爲開發過程當中的版本,實時,但不穩定,release版本則比較穩定。Maven 會根據你項目的版原本判斷將構件分發到哪一個倉庫。工具
二、在 settings.xml 文件中配置
因爲用 Maven 分發構件到遠程倉庫須要認證,需要在~/.m2/settings.xml中加入驗證信息:url
<server> <id>maven-nexus-snapshots</id> <username>admin</username> <password>admin123</password></server><server> <id>maven-nexus-repository</id> <username>admin</username> <password>admin123</password></server>spa
注意: settings.xml 中 server 元素下 id 的值必須與 POM 中 repository 或 snapshotRepository 下 id 的值徹底一致 。
附:發佈 release 版本時發生錯誤 Failed to transfer file … Retrun code is 401
這是由於: Nexus中 Releases 倉庫默認的 Deployment Policy是「Disable Redeploy」,因此沒法部署的問題在這個地方,解決方法是將其修改成「Allow Redeploy」就能夠了。
eclipse 的控制檯顯示: