目前比較流行的使用nexus搭建maven私有服務器,其實很簡單,它就是一個web系統,從官方下載的包默認內嵌了jetty容器,因此須要提早安裝好JVM,並配置好環境變量,接下來只須要簡單配置並運行便可。html
本文參考的博客:http://www.361way.com/nexus-maven-private-warehouse/3108.htmllinux
官方下載Nexus oos版本:https://www.sonatype.com/download-oss-sonatypeweb
安裝下載後解壓,有2個目錄:nexus-3.4.0-02 sonatype-work瀏覽器
nexus-3.4.0-02 -> bin目錄有3個文件nexus(執行程序)、nexus.rc(配置文件,配置運行nexus的用戶)、nexus.vmproperties(配置文件,配置nexus運行JVM虛擬機參數)
只須要設置nexus.rc中爲:run_as_user="lkqm", 注意nexus基於安全考慮lkqm不能是root。安全
啓動中止
bin目錄下執行: nexus start
啓動,nexus status
查看運行狀態, nexus run
運行並打印結果會佔用終端,nexus stop
中止。服務器
注:Nexus3版本以上須要jdk1.8版本。linux安裝nexus運行須要操做sonatype-work目錄下文件,因此保證run_as_user指定的用戶對整個目錄有讀寫權限。maven
linux下安裝命令參考:url
cd ~/donwload # 解壓到指定目錄 sudo mkdir /usr/local/nexus suod tar xzvf nexus-3.4.0-02-unix.tar.gz -C /usr/local/nexus # 修改nexus目錄的權限 cd /usr/local/nexus sudo chown -R lkqm . # 修改配置文件nexus.rc # 運行 cd nexus-3.4.0-02/bin ./nexus start
瀏覽器中訪問192.168.0.1:8081, 未登陸狀態,只能查看服務器端哪些倉庫,以及有那些包(jar), 左側樹形菜單brow點擊能夠查看。代理
點擊右上角登陸後進入配置界面,默認的管理員帳戶:admin, 密碼admin123,左側樹形菜單:repository,進入倉庫配置(CRUD)。unix
倉庫分爲3種:
到此服務端,配置完畢。
注:默認提供了多個倉庫,能夠參照配置。
爲了讓maven項目,從私有服務器下載組建(jar包),須要在maven的配置文件setting.xml -> mirrors添加mirror元素:
<mirror> <id>lkqm</id> <mirrorOf>central</mirrorOf> <name>My Server Maven.</name> <url>http://localhost:8081/repository/maven-public/</url> </mirror>
url標籤的值,一般指向group類型的倉庫,這樣咱們就能夠下載共有的和私有的組件(jar包)。
咱們須要將本身的組件(jar包)上傳到私有的maven服務器中,須要在指定項目的pom.xml中,添加以下配置,而後執行maven命令deploy便可將項目打包上傳到服務器:
<!-- 構建分發管理:本地構建上傳到私有服務器 --> <distributionManagement> <repository> <id>nexus-releases</id> <name>Nexus Release Repository</name> <url>http://localhost:8081/repository/maven-release/</url> </repository> <snapshotRepository> <id>nexus-snapshots</id> <name>Nexus Snapshot Repository</name> <url>http://localhost:8081/repository/maven-snapshot/</url> </snapshotRepository> </distributionManagement>
url標籤的值,指向hosted類型的倉庫,用於上傳私有的組件(jar包)。
因爲倉庫須要帳戶密碼訪問,所以根據上面配置的id的值,去maven配置文件setting.xml -> servers節點中查找,內容以下:
<servers> <server> <id>nexus-release</id> <username>admin</username> <password>199528</password> </server> <server> <id>nexus-snapshots</id> <username>admin</username> <password>199528</password> </server> </servers>