我正在使用Gradle和Groovy解决这个问题。 Gradle任务调用groovy方法,该方法在解析xml文件后返回所有网站元素的GPATH结果。 xml文件如下所示:
<?xml version="1.0" encoding="iso-8859-1"?>
<sites>
<site name="OctUK">
<property name="warName">OctUKbuild-Deployable</property>
</site>
<site name="GbsJP">
<property name="warName">GbsJPbuild-Deployable</property>
</site>
</sites>
Gradle任务通过每个方法读取GPathResult并执行以下ant任务:
ant.unzip(src:sourceFile, dest:destFile)
代码:
siteNavigator.findSite().each{
def siteWarName = it.property.findAll{it.@name.text()}
def destFile="${project.Release_Path}/${project.POSReleaseID}/${siteWarName}- ${project.Version_ID}-${project.env}-${project.appGroup}-exp"
ant.unzip(src:sourceFile, dest:destFile)
}
源文件是一个war文件,需要在解析XML文件后解压缩名称。
目前是顺序活动。
是否可以使其平行,例如将为GPathResult中的每个元素触发一个新的ant任务,以便ant任务是并行的。
答案 0 :(得分:2)
不确定它是否可行,但您尝试过:
ant.parallel {
siteNavigator.findSite().each {
def destFile = "${project.Release_Path}/${project.POSReleaseID}/${it.@name}- ${project.Version_ID}-${project.env}-${project.appGroup}-exp"
ant.unzip( src:sourceFile, dest:destFile )
}
}