2014-06-19 86 views
0

執行任務需要你的幫助:Groovy的AntBuilder後臺

試圖用Groovy執行Ant任務,以便它不會等待來自腳本的響應(即在後臺運行)

我已經嘗試了以下兩種方式,但沒有成功

//Cannot find script 
ant.exec(failonerror: "true", executable: "scriptname.sh &") 

// Says: You have used an attribute or nested element which is not compatible with spawn 
ant.exec(failonerror: "true", spawn:"true", executable: "scriptname.sh") 

有關如何完成此任務的任何建議?我搜索了谷歌,但找不到任何Groovy的好例子。

謝謝你們,我感謝你的幫助。

回答

0

而不是試圖找出如何在有限的文檔的AntBuilder中做到這一點,我創建了第二個shell腳本,而不是在後臺執行所需的shell腳本。

#!/bin/bash 

command="./scriptname.sh $1 $2 $3 $4" 

nohup $command > /dev/null 2>&1 & 
1

script.sh

#!/bin/bash 

cat > foo.conf << EOF 
NameVirtualHost 127.0.0.1 
<VirtualHost 127.0.0.1> 
    ServerName localhost 
</VirtualHost> 
EOF 

的build.gradle

task external << { 
    ant.exec(spawn:'true', executable: "${project.projectDir}/script.sh") 
} 

build.gradlescript.sh必須位於在該溶液中相同的文件夾。您需要提供完整路徑至executable

+0

它的工作與否? – Opal

+0

不幸的是,我對gradle並不是特別熟悉,而且我的系統架構相當先進,安裝的驅動器包含shell腳本。我試圖通過編寫第二個shell腳本來完成它,並嘗試簡化我的解決方案。我很感激你花時間回答。 – azdragon2