【问题标题】:Gradle Task - Multiple execution with different PIDGradle 任务 - 使用不同的 PID 多次执行
【发布时间】:2014-01-27 15:18:43
【问题描述】:

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

【问题讨论】:

    标签: ant groovy gradle


    【解决方案1】:

    不确定它是否会起作用,但你尝试过吗:

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

    【讨论】:

    • 我会试一试蒂姆。我在 Linux 机器上运行它。所以我想如果我做 PS -ef | grep ant,它应该显示多个实例。
    • 它可以工作,之前需要 2 分钟,但并行运行任务需要 45 秒。应对30次会导致显着差异
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-16
    • 2015-04-01
    • 1970-01-01
    相关资源
    最近更新 更多