背景
項目之前的私有倉庫不能使用了,本地倉庫可以,但是一旦clean就沒了,所以在本地有依賴的時候可以自己搭建一個maven私有倉庫然后將依賴全部上傳上去
搭建:使用docker-compose方式搭建
docker-compose文件
version: "3.3"
services:nexus:image: sonatype/nexus3container_name: nexus3restart: "no"environment:- TZ=Asia/Shanghaiports:- 9091:8081volumes:- ./data:/nexus-data
我這里使用本地的9091端口映射到虛擬機中的8081端口,所以本地訪問9091就可以
將docker-compose文件所在目錄的data目錄作為此倉庫存儲位置
鏡像配置
vim ~/.docker/daemon.json
在registry-mirrors下添加鏡像地址,這樣可以在pull鏡像時速度更快
中科大:https://docker.mirrors.ustc.edu.cn/
阿里云:https://你的阿里云加速地址.mirror.aliyuncs.com(去阿里云搜索鏡像加速器)
啟動
docker-compose up -d
稍等一會兒后即可啟動,在瀏覽器訪問9091端口即可
然后新建倉庫,用于上傳依賴包到倉庫
這里我新建的倉庫地址是:http://127.0.0.1:9091/repository/local_repo
將依賴全部放在一個文件夾內
例如我這里放到了這兒:
然后在這個mavenimport文件夾下新建文件:vim mavenimport.sh
腳本內容如下:
#!/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; docase $opt inr) REPO_URL="$OPTARG";;u) USERNAME="$OPTARG";;p) PASSWORD="$OPTARG";;esac
donefind . -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}/{} ;
給腳本執行權限:chmod +x mavenimport.sh
上傳依賴
在mavenimport路徑下,執行:./mavenimport.sh -u nexus用戶名 -p 密碼 -r http://127.0.0.1:9091/repository/local_repo/
稍等片刻直到腳本執行完畢即可