Docker之MAVEN私服

Docker之MAVEN私服

目錄

  • nexus簡單介紹
  • Docker安裝MAVEN nexus
  • Maven nexus批量上傳jar包

nexus簡單介紹

  • Nexus 是Maven倉庫管理器,可以在自有服務(wù)器上搭建自己的MAVEN倉庫.

Docker安裝MAVEN nexus

  1. Docker安裝
  2. 查詢nexus安裝鏡像
    docker search nexus
  3. 下載鏡像
    docker pull docker.io/sonatype/nexus3
  4. 查看鏡像
    docker images
  5. 啟動鏡像
    docker run -d -p 8081:8081 -p 8082:8082 -p 8083:8083 --name nexus3 -v /opt/nexus-data:/nexus-data -u root --privileged=true --restart=always docker.io/sonatype/nexus3
  1. 在運(yùn)行是可能會出現(xiàn)Permission denied的提示,這是因?yàn)槿萜髂夸浐蛼燧d目錄的組名和用戶名不同,導(dǎo)致使用對應(yīng)的用戶在宿主機(jī)目錄下沒有讀寫權(quán)限.
  1. 開放防火墻8081端口
    firewall-cmd --zone=public --add-port=8081/tcp --permanent
  2. 訪問maven私服
    ip:8081
  3. 查看私服用戶admin密碼
    find / -name 'admin.password'
  • copy其中的內(nèi)容為密碼
  1. 登陸成功后進(jìn)入設(shè)置代理倉庫
  • 紅色框是遠(yuǎn)程代理倉庫,也就是本地倉庫沒有的jar,將會通過遠(yuǎn)程的倉庫下載
    nexus之私服倉庫地址.jpg
  1. 點(diǎn)擊保存

  2. 創(chuàng)建本地用戶

    nexus之用戶創(chuàng)建.jpg

  3. 使用idea創(chuàng)建一個maven項(xiàng)目進(jìn)行測試,pom中加入如下代碼

 <distributionManagement>
        <repository>
            <id>nexus-releases</id>
            <url>http://ip:port/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
            <id>nexus-snapshots</id>
            <url>http://ip:port/repository/maven-snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

  1. 配置配置$MAVEN_HOME/conf/settings.xml的nexus私服用戶,id和pom的配置一致
<server>
   <id>nexus-releases</id>
   <username>felixfei</username>
   <password>felixfeinexus</password>
</server>
 
<server>
   <id>nexus-snapshots</id>
   <username>felixfei</username>
   <password>felixfeinexus</password>
</server>
  1. 配置完成之后使用 mvn deploy在idea開發(fā)工具中進(jìn)行打包上傳

  2. 登陸maven nexus進(jìn)行查看如圖


    打包并上傳私服.jpg
  3. 創(chuàng)建demo項(xiàng)目并進(jìn)行調(diào)用,如圖


    jar-pom.jpg

Maven nexus批量上傳jar包

  1. 先將本地repository下的文件打包成一個zip包
  2. 使用sftp工具上傳到linux /opt目錄
  3. 使用unzip repository.zip命令進(jìn)行解壓
  4. 進(jìn)入該目錄cd /opt/repository
  5. 創(chuàng)建mavenimport.sh腳本,內(nèi)容如下
    #!/bin/bash
    # copy and run this script to the root of the repository directory containing files
    # this script attempts to exclude uploading itself explicitly so the script name is important
    # Get command line params
    
    while getopts ":r:u:p:" opt; do
        case $opt in
            r) REPO_URL="$OPTARG"
            ;;
            u) USERNAME="$OPTARG"
            ;;
            p) PASSWORD="$OPTARG"
            ;;
        esac
    done
    find . -type f -not -path './mavenimport\.sh*' -not -path '*/\.*' -not -path '*/\^archetype\-catalog\.xml*' -not -path '*/\^maven\-metadata\-local*\.xml' -not -path '*/\^maven\-metadata\-deployment*\.xml' | sed "s|^\./||" | xargs -I '{}' curl -u "$USERNAME:$PASSWORD" -X PUT -v -T {} ${REPO_URL}/{} ;
    
  6. 輸入chmod a+x mavenimport.sh授權(quán)該腳本可執(zhí)行
  7. 執(zhí)行導(dǎo)入命令(地址和賬號密碼更換為自己的maven nexus信息)
    ./mavenimport.sh -u user -p password -r http://ip:port/repository/maven-releases/
  8. 執(zhí)行完畢后進(jìn)行刷新maven nexus即可看到
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容