Gradle Task - 使用不同的PID进行多次执行

时间:2014-01-27 15:18:43

标签: ant groovy gradle

我正在使用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任务是并行的。

1 个答案:

答案 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 )
    }
}