适用情形
当你部署了一台nexus3服务器 想从本地仓库上传Jar包,如果你嫌一个一个上传太慢 你可以试试这个方法
前提准备
-
已经安装部署好的一台nexus3系统 云服务器/内网实体服务器都行
-
本地需要有Maven环境
-
配置maven setting.xml
添加一个server
id为repositories的Name
username 和 password 是你的nexus服务器的帐号密码
Python脚本
import os
# 两个路径为你的本地仓库的路径 相同即可
CALCPATH = r"C:\xxxxxxx\.m2\repository"
ROOTPATH = r"C:\xxxxxxx\.m2\repository"
# 仓库名称
repoId = 'maven-releases'
# 仓库url
repoUrl = 'http://xxxxxxxxx/repository/maven-releases/'
def getAllJar():
for root, dir, files in os.walk(ROOTPATH):
for each in files:
if each.endswith('jar'):
info = getInfo(root, each)
info['filepath'] = root+'\\'+each
uploadJar(info)
def uploadJar(info):
filepath = info['filepath']
jarGroupid = info['groupId']
jarArtifactid = info['artifactId']
jarVersion = info['version']
jarShell = 'mvn deploy:deploy-file' + ' -DrepositoryId=' + repoId + ' -Durl=' + repoUrl + ' -Dfile=' + filepath + ' -DgroupId=' + jarGroupid + ' -DartifactId=' + jarArtifactid + ' -Dversion=' + jarVersion + ' -Dpackgaing=jar'
print(jarShell)
os.system(jarShell)
def getInfo(root, each):
res = {}
t = root[len(CALCPATH) + 1:].rsplit('\\', 1)
res['groupId'] = t[0].replace('\\', '.')
res['version'] = t[1]
res['artifactId'] = each.rsplit('-', 1)[0]
return res
if __name__ == "__main__":
print("开始执行")
getAllJar()