概念:Nexus服務器是一個代碼包管理的服務器,能夠理解 Nexus 服務器是一個巨大的 Library 倉庫。Nexus 能夠支持管理的工具包括 Maven , npm 等,對於 JAVA 開發來講,只要用到 Maven 管理就能夠了。npm
Nexus服務器做用:由於傳統的中央倉庫在國外,其地理位置比較遠,下載速度比較緩慢。所以,當公司開發人員數量愈來愈多時,若是不架設一臺本身的Nexus服務器,會產生大量的流量阻塞帶寬,而且在出現一些不可抗緣由(光纜被挖斷)致使沒法鏈接到中央倉庫時,開發就會由於沒法下載相關依賴包而進度停滯。所以在本地環境部署一臺私有的Nexus服務器來緩存全部依賴包,而且將公司內部開發的私有包也部署上去,方便其餘開發人員下載,是很是有必要的。由於 Nexus 有權限控制,所以外部人員是沒法獲得公司內部開發的項目包的。緩存
下面將介紹如何將本身的maven構件發佈到nexus私服 上呢?服務器
第一步:maven
一、在 pom.xml 文件中聲明快照發布的宿主倉庫和 release 版本發佈的倉庫。工具
<!-- 發佈構件到Nexus --> <distributionManagement> <repository> <id>releases</id> <name>nexus-releases</name> <url>http://192.168.30.56:8081/repository/maven-releases/</url> </repository> <snapshotRepository> <id>snapshots</id> <name>nexus-snapshots</name> <url>http://192.168.30.56:8081/repository/maven-snapshots/</url> </snapshotRepository> </distributionManagement>
maven中的倉庫分爲兩種,snapshot快照倉庫和release發佈倉庫,url
如何區分呢?spa
snapshot快照倉庫用於保存開發過程當中的實時但不穩定版本(因此正式環境中不得使用snapshot版本的庫),release正式倉庫則是用來保存穩定的發行版本。server
定義一個組件/模塊爲快照版本,只須要在pom文件中在該模塊的版本號後加上-SNAPSHOT便可(注意這裏必須是大寫)例如:<version>2.2.1-SNAPSHOT</version>xml
Maven 會根據你項目的版原本判斷將構件分發到哪一個倉庫。 blog
第二步:在 settings.xml 文件中配置
因爲用 Maven 分發構件到遠程倉庫須要認證,需要在~/.m2/settings.xml或者中加入驗證信息:
<servers> <server> <id>public</id> <username>caicea</username> <password>123456</password> </server> <server> <id>releases</id> <username>caicea</username> <password>123456</password> </server> <server> <id>snapshots</id> <username>caicea</username> <password>123456</password> </server> </servers>
注意: settings.xml 中 server 元素下 id 的值必須與 POM 中 repository 或 snapshotRepository 下 id 的值徹底一致 。