Centos下 Nexus 3.x 搭建Maven 私服

Maven的原理就是將jar從遠程中央倉庫下載到PC磁盤的本地倉庫,當本地倉庫沒有發現須要的jar就會去Maven默認的遠程中央倉庫Maven Central(由Apache維護)中尋找,每次須要新的jar後都要從遠程中央倉庫上下載。那麼問題來了?這個遠程的中央倉庫必定有不少人使用那下載速度必定很慢,這個暫且不用考慮。 重要的是萬一哪天公司外網連不上了咋辦?而Nexus私服剛好能夠解決這個問題。搭建私服的好處是Nexus有效解決了Maven對Apache的遠程中央倉庫的依賴,當項目須要新的jar時會先在nexus私服下載好之後纔會下載到本地。若是發現私服已經存在這個jar包,則會直接從私服下載到本地Maven庫,若是沒有再去網絡上下載。同時,咱們也可打包本身的代碼變成jar包上傳到私服中供公司其餘同事下載使用。apache

準備工做

  • 安裝Nexus 以前先肯定是否已經安裝JDK,這裏安裝的是jdk8版本(如何安裝JDK步驟敘述,)

安裝的JDK 版本

安裝Nexus

下載完成後解壓安裝

  • 解壓
tar -zvxf nexus-3.13.0-01-unix.tar.gz -C /opt/

複製代碼
  • 環境變量配置
vim /opt/nexus-3.13.0-01/bin/nexus
    
    //配置JDK 路徑
    INSTALL4J_JAVA_HOME_OVERRIDE=/opt/jdk1.8.0_181
複製代碼
  • 啓動Nexus
/opt/nexus-3.13.0-01/bin/nexus start
複製代碼

啓動Nexus

  • 瀏覽器打開Nexus界面,默認端口號是8081(注意須要判斷服務器是否開通了該端口號的監聽,這裏我將默認端口號改爲9190)
//加入9190端口的監聽
    vim /etc/sysconfig/iptables

    查看是否監聽端口(若是配置了本身定義的端口,須要先訪問該端口一次才能看到監聽)

    netstat -ntlp

    //重啓防火牆配置(不重啓端口仍是沒法生效)
    service iptables restart
    
     //修改端口號
     vim /opt/nexus-3.13.0-01/etc/nexus-default.properties
     
     //重啓Nexus
     /opt/nexus-3.13.0-01/bin/nexus restart
     
     Nexus其餘命令
     
     //中止
     nexus stop

     //查看狀態
     nexus status
     
     默認登陸用戶名密碼
     admin 
     admin123
     
     卸載
     rm -rf nexus-3.13刪除掉安裝目錄便可
     
     //能夠看到Nexus在瀏覽器中能夠打開界面,部署成功,以下圖
複製代碼

9190端口加入監聽

編輯Nexus配置文件修改端口號爲9190

Nexus啓動成功

配置jenkins,maven更新到Nexus私服

  • 修改Jenkins服務器上的Maven的settings.xml文件(路徑是Maven安裝路徑 /opt/apache-maven-3.5.4/conf/),加入maven訪問nexus認證,訪問Nexus的賬號密碼爲上面登陸nexus的默認登陸用戶名密碼

maven訪問nexus認證

  • maven 項目pom文件配置私服倉庫
<repositories>
        <repository>
            <id>nexus</id> <!--id要和上一步配置的id一致-->
            <name>local nexus</name>
            <url>http://xxxxx:9190/repository/maven-public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
    </repositories>
    <pluginRepositories>
    <pluginRepository>
        <id>nexus</id>
        <name>local nexus</name>
        <url>http://xxxxx:9190/repository/maven-public/</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </pluginRepository>
    </pluginRepositories>
複製代碼

Nexus 默認的三種類型倉庫,建立倉庫的時候能夠選擇這三種

1.group(倉庫組類型):又叫組倉庫,用於方便開發人員本身設定的倉庫;

    2.hosted(宿主類型):內部項目的發佈倉庫(內部開發人員,發佈上去存放的倉庫)

    3.proxy(代理類型):從遠程中央倉庫中尋找數據的倉庫(能夠點擊對應的倉庫的 Configuration 頁簽下 Remote Storage Location 屬性的值即被代理的遠程倉庫的路徑)
複製代碼

Nexus 三種倉庫類型

proxy(代理類型)

  • 這裏就是代理的意思,代理遠程中央 Maven 倉庫,當 項目構建訪問中央庫的時候,先經過代理去遠程中央倉庫下載依賴包到Nexus 倉庫,而後再從Nexus倉庫下載到本地。私服咱們部署在內網服務器,只要其中一我的從遠程中央庫下來了,之後相同的依賴包就都是從Nexus私服上進行下載,這樣大大加快下載速度,不怕遠程中央倉庫出現問題。

代理倉庫配置

hosted(宿主類型)

  • 建立布和代理方式建立差很少
  • Hosted 是宿主機的意思,就是怎麼把第三方的 Jar 放到私服上。 Hosted 有三種方式,Releases、SNAPSHOT、Mixed

group(倉庫組類型)

  • 將其餘倉庫類型合併一塊兒(maven public就是group類型),如圖所示將其餘倉庫合在一下提供對外使用

maven public倉庫合併其餘倉庫變成組

倉庫屬性說明

  • maven-central:maven中央庫,默認從https://repo1.maven.org/maven2/拉取jar
  • maven-releases:私庫發行版jar
  • maven-snapshots:私庫快照(調試版本)jar
  • maven-public:倉庫分組,把上面三個倉庫組合在一塊兒對外提供服務,在本地maven基礎配置settings.xml中使用。

Nexus jar 包上傳與刪除

上傳jar包

  • 若是咱們使用的遠程maven中心庫有jar包沒法下載,或者是咱們本身編譯好的jar包提供給公司其餘人,則能夠將本地jar包上傳到私服倉庫

nexus 上傳jar包

私服jar刪除

  • 私服jar出現問題,咱們也能夠刪除私服的jar包從新下載或自行上傳

私服jar刪除

到此,Nexus搭建Maven私服服務已經完成.vim

相關文章
相關標籤/搜索