將本地庫批量導入到Nexus3.x上(Maven私服)


1,問題描述

(1)由於公司內網的 Nexus 私服倉庫不能聯網,不過本地倉庫已經有很多的 maven 的 jar 包了,便想將其從本地倉庫導入到 Nexus 私服中。
(2)Nexus2.x 批量導入本地庫是十分容易的,只需將庫文件夾復制到對應 nexus 庫下面,去網頁刷新一下索引就OK了。在 Nexus3.x 中,我們沒法這么操作了,但是我們可以使用 shell 腳本,批量導入 Nexus3.x。
 

2,操作步驟

(1)首先訪問 Nexus 頁面,登錄后點擊“Create repository”按鈕新建一個倉庫。
原文:將本地庫批量導入到Nexus3.x上(Maven私服)
(2)選擇 maven2(hosted)
原文:將本地庫批量導入到Nexus3.x上(Maven私服)

(3)按照自身需求填寫如下選項(倉庫名隨意):

原文:將本地庫批量導入到Nexus3.x上(Maven私服)
(4)在服務器 /home 目錄下,新建一個文件夾 repo,批量放入我們需要的本地庫文件夾:
原文:將本地庫批量導入到Nexus3.x上(Maven私服)

(5)在 repo 文件夾下執行如下命令創建一個 shell 腳本:

1
vi mavenimport.sh


(6)腳本內容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/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}/{} ;


(7)保存退出后執行如下命令賦予其執行權限:

1
chmod  +x mavenimport.sh


(8)執行如下命令即可將該目錄下的 jar 包都導入到指定倉庫中:

注意:命令中 Nexus 用戶名、用戶密碼、倉庫地址根據實際情況進行修改。
1
./mavenimport.sh -u admin -p 123 -r http: //192.168.60.133:8081/repository/my_repo/


(9)訪問 Nexus 控制台頁面,可以發現確實都上傳成功了:

原文:將本地庫批量導入到Nexus3.x上(Maven私服)


原文出自:www.hangge.com  轉載請保留原文鏈接:https://www.hangge.com/blog/cache/detail_2910.html


免責聲明!

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



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