python 复制lib下的jar到maven的仓库中

项目有POM.xml文件,有好多jar包,需要把用到的jar包,解析pom.xml,找到需要复制的jar包,复制到另一个maven仓库里去
[color=red][b]这个脚本有问题,会丢失依赖关系[/b][/color]
脚本:


#! python
#coding:utf-8
#http://powertech.iteye.com/
import sys
import os
import shutil
import xml.dom.minidom as xml

repository = 'E:/python/repository'

lib = 'E:/target/dependency'

pom = 'E:/python/pom.xml'


'''
中文打印函数
'''
def out(str):
print str.decode('UTF-8').encode('GBK')


'''
根据group id 创建文件夹路径
'''
def groupPath(group,artifactId,version):

group = group.replace('.','/')

if repository[-1]!='/' :
group = repository+'/'+group
else:
group = repository+group

group = group+'/'+artifactId+'/'+version

exists = os.path.exists(group)

if not exists :
os.makedirs(group)

return group

'''
获取某XML节点下,子节点的值
'''
def nodeVal(element,name):
node = element.getElementsByTagName(name)
if len(node)>0:
return element.getElementsByTagName(name)[0].firstChild.nodeValue
else:
return ''



'''
将${jdbc.driver.groupId}类型的引用,替换为实际值
'''
def prop(element,name):
if len(name)==0:
return ''

if name[0]=='$':
name = name[2:len(name)-1]
name = nodeVal(element,name)
return name

def cpjar():
dom = xml.parse(pom)
project = dom.documentElement
dependencies = project.getElementsByTagName('dependency')
i=0
for dependency in dependencies:

groupId = nodeVal(dependency,'groupId')
groupId = prop(project,groupId)

artifactId = nodeVal(dependency,'artifactId')
artifactId = prop(project,artifactId)

version = nodeVal(dependency,'version')
version = prop(project,version)

classifier = nodeVal(dependency,'classifier')
classifier = prop(project,classifier)

gp = groupPath(groupId,artifactId,version)
out('create directory:'+gp)
if len(classifier)>0:
jar = artifactId+'-'+version+'-'+classifier+'.jar'
else:
jar = artifactId+'-'+version+'.jar'
src = lib+'/'+jar
dst = gp+'/'+jar
out('copy from:'+src)
out('copy to:'+dst)
print('\n')
shutil.copy(src,dst)
i+=1
print('%d jar files copied!' %(i))
print('copy over!')


cpjar()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值