2014-01-27 40 views
0

我正在使用Gradle和Groovy來解決這個問題。 Gradle任務正在調用groovy方法,該方法在解析xml文件後返回所有網站元素的GPATH結果。 xml文件看起來像如下:Gradle任務 - 使用不同的PID執行多次

<?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> 

的搖籃任務完成每一種方法讀取GPathResult並執行以下Ant任務:

ant.unzip(src:sourceFile, dest:destFile) 

代碼:

siteNavigator.findSite().each{ 
    def siteWarName = it.property.findAll{[email protected]()} 
    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任務是並行的。

回答

2

不知道是否會工作,但你有沒有嘗試過:

ant.parallel { 
    siteNavigator.findSite().each { 
     def destFile = "${project.Release_Path}/${project.POSReleaseID}/${[email protected]}- ${project.Version_ID}-${project.env}-${project.appGroup}-exp" 
     ant.unzip(src:sourceFile, dest:destFile) 
    } 
} 
+0

我會給它一個去添。我在Linux上運行這個。所以我猜如果我做PS -ef | grep ant,它應該顯示多個實例。 – user1470220

+0

它的工作原理和早期需要2分鐘,但與平行運行的任務,它需要45秒。應對30次會導致顯着差異 – user1470220