Nexus的安裝與配置
僅以此文,獻給陷入懶癌晚期的小伙伴們.
本文基于nexus 3.xx
.0. What?Why?When?Who?Where?
Sonatype Nexus是一款maven倉庫管理軟件,有了它,你可以方便的搭建屬于自己的maven私服。而通過搭建私服,可以帶來幾個顯而易見的好處。
- 節省外網帶寬:以一個30人的項目小隊為例,如果沒有私服,所有的人在更新依賴時,都將從中央倉庫去檢查更新,這無疑增加了外網負擔。
- 方便內網協作:很多Team工作中會出現沒有外網、不允許連接外網或者外網訪問受限的情況。這時候總有那么1-2臺機器是可以順暢的連接外網的,如果在外網機器上搭建私服,再配以梯子。無疑方便又高效。
- 組件共享:開發的公共組件,又不想上傳到三方倉庫怎么辦,上傳到私服,設定一個坐標便可以像其它依賴一樣隨時引用了。
.1.下載
下載地址:http://www.sonatype.com/download-oss-sonatype
一般官方會提供兩個包,一個安裝板和解壓版。可以根據自己的喜好選擇喜歡的版本下載。這里我選擇的是解壓版的進行安裝。
本文采用的是3.X版本,3.x版本增加了對docker、npm等倉庫的支持,但遺憾的是暫時不支持手工upload構件,據說這個功能會在3.1之后支持。
.2.安裝&配置
[官方文檔](http://books.sonatype.com/nexus-book/3.0/reference/install.html)
先決條件 : 配置好了 JDK , JDK的配置不在本文討論范圍 , 不贅述 。
** 啟動 **
解壓下載的壓縮包,打開命令行跳到指定解壓目錄下的 bin 目錄下,執行./nexus /run
(windows執行nexus.exe /run
),然后經過一段時間的等待,當你發現控制臺打印出Started Nexus Repository Manager 3.0.1-01
這句話時,恭喜,Nexus已經安裝成功。
訪問 : http://localhost:8081,可以進入倉庫頁面。默認的用戶名密碼是admin/admin123,運行后會自動生成一個nexus工作目錄sonatype-work,nexus下載的jar包會存放在sonatype-work/nexus/storage中。
** 停止 **
Ctrl+c
即可
** 修改存儲路徑 **
可以通過修改bin/nexus.vmoptions
文件修改數據存儲路徑、緩存路徑等。
** 修改端口、ip **
如果要修改IP、端口等可以通過修改etc/org.sonatype.nexus.cfg
文件進行修改。
** 倉庫 **
nexus的倉庫類型分為以下幾種:
- group: 倉庫組
- hosted:宿主倉庫
- proxy:代理倉庫
點擊頁面頂端的齒輪按鈕->點擊repositories,可以看到nexus已經預置了7個倉庫,可以點擊create repositories添加其他的倉庫,比如
- JBOSS的兩個:
http://repository.jboss.org/maven2
http://repository.jboss.org/nexus/content/repositories/releases - spring的:
https://repo.spring.io/libs-release
.3.使用
** 使用私服 **
點擊頁面頂端的齒輪按鈕->點擊repositories,在列表中,找到需要的倉庫,復制url內容,添加到gradle腳本中.
repositories {
maven { url "http://localhost:8081/repository/maven-public/"}
maven { url "http://localhost:8081/repository/spring-public/"}
jcenter()
mavenCentral()
}
** 發布到私服 **
修改gradle.properties
nexusUrl=http://localhost:8081
nexusUsername=admin
nexusPassword=admin123
使用maven插件進行上傳
uploadArchives {
repositories {
mavenDeployer {
repository(url: "${nexusUrl}/repository/maven-releases/") {
authentication(userName: nexusUsername, password: nexusPassword)
}
snapshotRepository(url: "${nexusUrl}/repository/maven-snapshots") {
authentication(userName: nexusUsername, password: nexusPassword)
}
}
}
}
** 手動發布 **
以下是2.x版本的上傳方式,3.x版本據說要等到3.1以后才支持。
在nexus的倉庫列表中點擊要部署的目標倉庫,然后點擊Artifact Upload選項卡,在Gav definition選擇,Gav parameters,然后在下面的三個輸入框里輸入group、artifactID、version等相關信息,然后點擊select artifact to upload上傳即可。