Docker+Nexus3搭建自己的Maven倉庫

想了解Linux安裝Nexus3可以看官方文檔筹误,這里說一下docker的方式如何安裝配置析砸。

安裝Nexus

  • 搜索nexus 鏡像

    nexus搜索結(jié)果

  • 拉取鏡像

    docker pull sonatype/nexus3
    
  • 查看鏡像是否拉取下來


    鏡像圖
  • 創(chuàng)建nexus的掛載地址并授權(quán)

    # 創(chuàng)建掛載地址
    mkdir /usr/local/nexus
    # 給文件夾授權(quán)
    chmod chmod -R 777 /usr/local/nexus 
    # 后臺運行nexus并掛載出來
    docker run -d -p 8081:8081 --name nexus3 -v /usr/local/nexus:/nexus-data sonatype/nexus3
    
  • 訪問Nexus(默認(rèn)賬號:admin,密碼在admin.password文件里面)


    登錄界面

配置nexus

  • 這些倉庫默認(rèn)就會存在的,你可以直接使用這些倉庫南捂,或者修改一下也可以。為了配置自己的倉庫我們需要先刪掉自帶的倉庫鳖眼。


    默認(rèn)倉庫圖
  • Blob Stores介紹
    repositor是需要以Blob格式存儲的黑毅。默認(rèn)的Blol Stores是基于文件系統(tǒng)的,你可以把它理解為一個目錄

    可以通過Repository > Blob Store來管理存儲媒介钦讳,可以看到下面的默認(rèn)存儲名default矿瘦,類型File的Blob Store

    Blob圖

    Blob Stores參數(shù)如下:

    參數(shù) 含義
    Name Blob Stores的名稱,是唯一的
    Type 類型愿卒,一般為File
    State 狀態(tài)
    Blob count Blob數(shù)目
    Total size 現(xiàn)在該存儲目錄的大小
    Available space 可用的空間缚去,就是存儲目錄所在分區(qū)的磁盤剩余空間
  • 新建Blob Store
    點擊Repository > Blob Store > Create blob store

    創(chuàng)建Blob

    • Type: 這個有FileS3兩個選項,這里選File就行琼开。
    • Name: 名字隨便起吧易结,我的叫aen-blob
    • Enable Soft Quota: 這個是限制目錄的大小。這邊就不限制了柜候。你要是限制的話就勾上并填入上限的條件和限制的值就好了搞动。
    • Path:就是個路徑,在填入Name的時候就會自動生成

    最后點擊Create blob store就好了

  • 創(chuàng)建hosted類型的倉庫
    這個倉庫主要放一些自己封裝的工具類渣刷,自己手動構(gòu)建上傳的包鹦肿,或者中央倉庫找不到的包
    hosted有兩種類型的maven倉庫分別為snapshotrelease,那么該如何區(qū)分了?
    snapshot:顧名思義快照的意思辅柴,所以一般放一些不穩(wěn)定的庫箩溃,一天能修改好幾次代碼的庫瞭吃。
    release:公開,發(fā)行涣旨。所以這個一般放的都是比較穩(wěn)定的發(fā)行版本

  • 創(chuàng)建release發(fā)行庫
    點擊Repository > Repositories > Create repository歪架,選擇maven2(hosted)。

    選擇hosted圖

    • Name: 隨便起一個名字吧霹陡,maven-releases-aen

    • Online: 勾選和蚪,設(shè)置這個倉庫是在線還是離線

    • Maven2:

      Version Policy: 版本策略,三個選擇分別為:
      Release:正式版本
      Snapshot:快照版本
      Mixed:混合模式
      這里選擇Release烹棉。

      Layout Policy:布局策略
      Strict:嚴(yán)格
      Permissive:寬松
      這里選擇默認(rèn)的Strict惠呼。

    • Storage:
      Blob store:選擇此倉庫使用的Blob存儲,這里選擇之前創(chuàng)建的aen-blob峦耘。
      Strict Content Type Validation:驗證上傳內(nèi)容格式,這里不勾選旅薄。

    • Hosted:

      Deployment Policy:部署策略辅髓,三個選擇分別為:
      Allow Redeploy:允許重新部署
      Disable Redeploy:禁止重新部署
      Read-Only:只讀

      因為是release發(fā)行庫,這里選Disable Redeploy少梁。

      創(chuàng)建release發(fā)行庫

  • 創(chuàng)建snapshot快照庫
    和創(chuàng)建release發(fā)行庫一樣洛口,點擊Repository > Repositories > Create repository,選擇maven2(hosted)凯沪。

    創(chuàng)建snapshot快照庫

  • 創(chuàng)建一個代理(proxy類型) 倉庫
    點擊Repository > Repositories > Create repository第焰,選擇maven2(proxy)。

    創(chuàng)建阿里云代理庫

  • 創(chuàng)建一個組(group類型)倉庫
    點擊Repository > Repositories > Create repository挺举,選擇maven2(gruop)。

    創(chuàng)建組庫

組里里面順序建議阿里云的代理倉庫放第一烘跺,因為maven代理倉庫下載順序是從上往下的湘纵,建議將速度快的倉庫放在最前面。

驗證測試

  • 假裝你們都有jdkmaven環(huán)境了滤淳,修改maven里面的設(shè)置比如我的D:\apache\apache-maven-3.5.4\conf\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>D:\m2\repository</localRepository>
     
        <pluginGroups>
        
        </pluginGroups>
      
        <proxies>
        
        </proxies>
      
        <servers>
            <server>
                <id>nexus-aen</id>
                <username>admin</username>
                <password>Nexus2020</password>
            </server>
            <server>
                <id>releases</id>
                <username>admin</username>
                <password>Nexus2020</password>
            </server>
            <server>
                <id>snapshots</id>
                <username>admin</username>
                <password>Nexus2020</password>
            </server>
        </servers>
      
        <mirrors>
           <mirror>
            <id>nexus-aen</id>
              <name>internal nexus repository</name>
              <!--鏡像采用配置好的組的地址-->
              <url>http://192.168.31.236:8081/repository/maven-public-aen/</url>
              <mirrorOf>!internal.repo,*</mirrorOf>
           </mirror>
        </mirrors>
      
        <profiles>
           <profile>
                  <!--ID用來確定該profile的唯一標(biāo)識-->
                  <id>jdk-1.8</id>
                  <activation>
                      <activeByDefault>true</activeByDefault>
                      <jdk>1.8</jdk>
                  </activation>
                  <properties>
                      <maven.compiler.source>1.8</maven.compiler.source>
                      <maven.compiler.target>1.8</maven.compiler.target>
                      <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
                  </properties>
          </profile>
        
          <profile>
          <id>nexus-pro</id>
           <!-- 遠程倉庫列表 -->
          <repositories>
            <repository>
              <id>nexus</id>
              <name>Nexus Central</name>
             <!-- 虛擬的URL形式,指向鏡像的URL-->
              <url>http://192.168.31.236:8081/repository/maven-public-aen/</url>
              <layout>default</layout>
             <!-- 表示可以從這個倉庫下載releases版本的構(gòu)件-->  
              <releases>
                <enabled>false</enabled>
                <updatePolicy>always</updatePolicy>
              </releases>
             <!-- 表示可以從這個倉庫下載snapshot版本的構(gòu)件 -->  
              <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
              </snapshots>
            </repository>
          </repositories>
          
           <!-- 插件倉庫列表 -->
          <pluginRepositories>
            <pluginRepository>
              <id>nexus</id>
              <name>Nexus Central</name>
              <url>http://192.168.31.236:8081/repository/maven-public-aen/</url>
              <layout>default</layout>
              <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
              </snapshots>
              <releases>
                 <enabled>true</enabled>
                 <updatePolicy>always</updatePolicy>
              </releases>
            </pluginRepository>
          </pluginRepositories>
        </profile>
         </profiles>
    
      <activeProfiles>
        <activeProfile>nexus-pro</activeProfile>
        <activeProfile>jdk-1.8</activeProfile>
      </activeProfiles>
    </settings>
    
  • 在需要打包的pom文件里面添加distributionManagement屬性

     <!-- 使用分發(fā)管理將本項目打成jar包脖咐,直接上傳到指定服務(wù)器 -->
     <distributionManagement>
         <!--正式版本-->
         <repository>
             <!-- nexus服務(wù)器中用戶名:在settings.xml中<server>的id-->
             <id>releases</id>
             <!-- 這個名稱自己定義 -->
             <name>Release repository</name>
             <url>http://192.168.31.236:8081/repository/maven-releases-aen/</url>
         </repository>
         <!--快照-->
         <snapshotRepository>
             <!-- nexus服務(wù)器中用戶名:在settings.xml中<server>的id-->
             <id>snapshots</id>
             <!-- 這個名稱自己定義 -->
             <name>Snapshots repository</name>
             <url>http://192.168.31.236:8081/repository/maven-snapshots-aen/</url>
         </snapshotRepository>
     </distributionManagement>
    
  • 在打包上傳之前我們先看一下maven-public-aen和maven-releases-aen庫


    沒打包之前圖
  • 打包只需要點點點就好了


    打包圖
  • 現(xiàn)在我們再來看一下maven-public-aen和maven-releases-aen庫


    maven-releases-aen庫

    maven-public-aen庫

好了到這里我們的maven倉庫就搭建測試完成了

參考地址:
https://help.sonatype.com/repomanager3
https://hub.docker.com/r/sonatype/nexus3/
https://blog.csdn.net/wc1695040842/article/details/102575686

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末铺敌,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子屁擅,更是在濱河造成了極大的恐慌偿凭,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件煤蹭,死亡現(xiàn)場離奇詭異笔喉,居然都是意外死亡取视,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門常挚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來作谭,“玉大人,你說我怎么就攤上這事奄毡≌矍罚” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵吼过,是天一觀的道長锐秦。 經(jīng)常有香客問我,道長盗忱,這世上最難降的妖魔是什么酱床? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮趟佃,結(jié)果婚禮上扇谣,老公的妹妹穿的比我還像新娘。我一直安慰自己闲昭,他們只是感情好罐寨,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著序矩,像睡著了一般鸯绿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上簸淀,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天瓶蝴,我揣著相機與錄音,去河邊找鬼租幕。 笑死囊蓝,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的令蛉。 我是一名探鬼主播聚霜,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼珠叔!你這毒婦竟也來了蝎宇?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤祷安,失蹤者是張志新(化名)和其女友劉穎姥芥,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體汇鞭,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡凉唐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年庸追,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片台囱。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡淡溯,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出簿训,到底是詐尸還是另有隱情咱娶,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布强品,位于F島的核電站膘侮,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏的榛。R本人自食惡果不足惜琼了,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望夫晌。 院中可真熱鬧表伦,春花似錦、人聲如沸慷丽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽要糊。三九已至,卻和暖如春妆丘,著一層夾襖步出監(jiān)牢的瞬間锄俄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工勺拣, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留奶赠,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓药有,卻偏偏與公主長得像毅戈,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子愤惰,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353