maven私服nexus倉庫3.24.0版本搭建


  • 最近有需要搭建一個Maven,記錄一下

一、安裝介紹

這里就不多介紹了,網上都有,

二、環境准備

jdk1.8,這里略過,有需要翻以前的文章

nexus倉庫,nexus倉庫我們這里選擇的是選擇的是OSS 3.x版本。

填入郵箱登錄,需要注意的是Are you an existing Repo OSS user?*

  • 這里第一次登錄 選擇NO

跳轉到下載頁面,選擇相應的即可,我這里選擇的是UNIX版的,

三、安裝過程

我們下好的上傳到root目錄下,自己安裝的時候注意目錄

解壓文件到/usr/local 下

tar -zxvf nexus-3.24.0-02-unix.tar.gz -C /usr/local

進入目錄,添加軟連接,驗證

添加環境變量

vim /etc/profile

export NEXUS_HOME=/usr/local/nexus-3.24.0-02

刷新變量

source /etc/profile

修改root驗證,不然會出現

WARNING: ************************************************************
WARNING: Detected execution as "root" user.  This is NOT recommended!
WARNING: ************************************************************

修改方法

[root@localhost local]# cd /usr/local/nexus-3.24.0-02/bin/
[root@localhost bin]# vim nexus

把run_as_root=true改成run_as_root=false

啟動nexus,進入目錄

[root@localhost bin]# cd /usr/local/nexus-3.24.0-02/

前台啟動

./bin/nexus console

后台進程啟動

./bin/nexus start

啟動成功訪問一下 ip:8081,竟然還有.NET的NUGET

登陸一下 用戶名:admin

  • 密碼:/usr/local/sonatype-work/nexus3/admin.password

修改密碼

先選擇匿名用戶

環境安裝成功

配置完畢啟動登錄后,

  • 在 /support/status 狀態頁面的 File Descriptors 項目可能會顯示 Recommended file descriptor limit is 65536 but count is 4096. 警告。

  • 原因是 Nexus 3 將很有可能要消耗比 Linux 或 OSX 操作系統允許每個用戶的默認文件句柄數(4096)更多的數量。

解決辦法 修改文件打開最大限制,這里需要重啟

[root@master ~]# vim /etc/security/limits.conf 
# End of file 
* soft nofile 65536 
* hard nofile 65536 
* soft nproc 131072 
* hard nproc 131072
 
[root@master ~]# ulimit -Sn 
[root@master ~]# ulimit -Hn

四、配置Nexus

Maven用到的Repositories說明:

  • maven-central:maven中央庫,默認從https://repo1.maven.org/maven2/拉取jar

  • maven-releases:私庫發行版jar

  • maven-snapshots:私庫快照(調試版本)jar

  • maven-public:倉庫分組,把上面三個倉庫組合在一起對外提供服務,在本地maven基礎配置settings.xml中使用。

順便提一下NuGet,等着有空再弄個NuGet吧

  • nuget.org-proxy,表示代理倉庫。如果本地有這個包,它就從本地提供,如果本地沒有,它會從nuget.org下載到本地,然后給我們提供這個包。

  • nuget-hosted,類型是hosted,表示托管倉庫。我們一般把自己開發的包上傳到該倉庫中。

  • nuget-group,類型是group,表示倉庫組,它結合了nuget.org-proxy和nuget-hosted,能對外提供上述兩者中的包。

  • nuget-hosted負責包上傳,nuget.org-proxy負責代理包,nuget-group負責提供包。Maven同理

如果不夠用,自己也可以根據博文上面的倉庫類型進行選用創建。

五、上傳jar包到nexus

修改如下的配置,我這里以idea演示,

  • 這里特別注意的是settings.xml和pom.xml的id需要匹配

  • 首先去設置中查看Maven目錄以及setting存放的位置

找到settings.xml,主要修改的地方

    <server>
      <id>releases</id>
      <username>admin</username>
      <password>password</password>
    </server>
    
    <server>
      <id>snapshots</id>
      <username>admin</username>
      <password>password</password>
    </server>

再找到pom.xml,需要修改的地方

<distributionManagement>
        <repository>
            <id>releases</id>
            <name>releases</name>
            <url>http://192.168.1.1:8081/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
            <id>snapshots</id>
            <name>snapshots</name>
            <url>http://192.168.1.1:8081/repository/maven-snapshots/</url>
        </snapshotRepository>
</distributionManagement>

然后Maven deploy

BUILD SUCCESS

這里說下build出現的錯誤代碼

  • Return code is: 405 檢查上面兩個配置地址,單詞是否完全寫對

  • Return code is: 401或者Return code is: 403 修改Nexus中Releases倉庫默認的"Deployment Policy",將其修改為"Allow Redeploy"就ok了。

  • Return code is: 400 檢查上面兩個配置地址,單詞是否完全寫對

這里貼一下全部的settings.xml 僅供參考

<?xml version="1.0" encoding="UTF-8"?>


<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

  <localRepository>C:\Users\Administrator\.m2\repository</localRepository>
 


  <pluginGroups>

  </pluginGroups>


  <proxies>

  </proxies>


  <servers>


    <server>
      <id>maven_3rd_part</id>
      <username>admin</username>
      <password>123456</password>
    </server>
    
    <server>
      <id>snapshots</id>
      <username>admin</username>
      <password>123456</password>
    </server>


    


  </servers>


  <mirrors>

  </mirrors>


  <profiles>

     <profile>
      <id>default_profile</id>
      <repositories>
        <!--包含需要連接到遠程倉庫的信息 -->
        <repository>
          <!--遠程倉庫唯一標識 自定義-->
          <id>test_name</id>
          <!--遠程倉庫名稱 自定義-->
          <name>test_name</name>
          <!--如何處理遠程倉庫里發布版本的下載 -->
          <releases>
            <!--true或者false表示該倉庫是否為下載某種類型構件(發布版,快照版)開啟。 -->
            <enabled>true</enabled>
            <!--該元素指定更新發生的頻率。Maven會比較本地POM和遠程POM的時間戳。這里的選項是:always(一直),daily(默認,每日),interval:X(這里X是以分鍾為單位的時間間隔),或者never(從不)。 -->
            <updatePolicy>never</updatePolicy>
            <!--當Maven驗證構件校驗文件失敗時該怎么做-ignore(忽略),fail(失敗),或者warn(警告)。 -->
            <checksumPolicy>warn</checksumPolicy>
          </releases>
          <!--如何處理遠程倉庫里快照版本的下載。有了releases和snapshots這兩組配置,POM就可以在每個單獨的倉庫中,為每種類型的構件采取不同的策略。例如,可能有人會決定只為開發目的開啟對快照版本下載的支持。參見repositories/repository/releases元素 -->
          <snapshots>
            <!--true或者false表示該倉庫是否為下載某種類型構件(發布版,快照版)開啟。 -->
            <enabled>true</enabled>
            <!--該元素指定更新發生的頻率。Maven會比較本地POM和遠程POM的時間戳。這里的選項是:always(一直),daily(默認,每日),interval:X(這里X是以分鍾為單位的時間間隔),或者never(從不)。 -->
            <updatePolicy>always</updatePolicy>
            <!--當Maven驗證構件校驗文件失敗時該怎么做-ignore(忽略),fail(失敗),或者warn(警告)。 -->
            <checksumPolicy>warn</checksumPolicy>
          </snapshots>
          <!--遠程倉庫URL,按protocol://hostname/path形式 -->
          <url>http://66.66.66.66:8091/repository/maven_3rd_part/</url>
          <!--用於定位和排序構件的倉庫布局類型-可以是default(默認)或者legacy(遺留)。Maven 2為其倉庫提供了一個默認的布局;然而,Maven 1.x有一種不同的布局。我們可以使用該元素指定布局是default(默認)還是legacy(遺留)。 -->
          <layout>default</layout>
        </repository>
      </repositories>
      
      <pluginRepositories>  
        <pluginRepository>  
          <id>maven-net-cn</id>  
          <name>Maven China Mirror</name>  
          <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
          <releases>  
            <enabled>true</enabled>  
          </releases>  
          <snapshots>  
            <enabled>true</enabled>  
          </snapshots>      
        </pluginRepository>  
      </pluginRepositories> 
  
    </profile>
  </profiles>


  <activeProfiles>
    <activeProfile>default_profile</activeProfile>
  </activeProfiles>

</settings>


配置就到此結束啦


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM