Executando o script bash no gradle

Eu estou fazendo testes funcionais com o geb.

Meu aplicativo é implantado usando o virgo e usa o HSQLDB para armazenar dados. Eu gostaria de realizar testes nesta versão funcional do aplicativo, mas gostaria de começar com o banco de dados vazio, toda vez que eu executo os webtests.

Eu escrevi um script simples

#!/bin/sh
rm -rf $VIRGO_HOME/aresdb*
$VIRGO_HOME/bin/shutdown.sh &
sleep 10
$VIRGO_HOME/bin/startup.sh &

que remove o banco de dados e reinicia o virgo.

No entanto, quando eu o adiciono ao meu comando build.gradle task running, nunca termina.

task cleanDB(type: Exec) {
    commandLine './clean.sh' 
}

Porque é este caminho? Quando executo este script no console ele retorna rapidamente (mas o virgo ainda grava no console).

Eu tentei executá-lo em thread separado, mas eu encontrei seguinte erro:

task cleanDBThread()<<{
    def cleanDBThread1 = Thread.start {
         cleanDB.execute()
    }
    sleep 10000
    println "wake up!"
}

Exception in thread "Thread-32" java.lang.IllegalStateException:
Cannot start long running operation, as the task artifact state cache
(/home/tomasz/ares/.gradle/1.0-milestone-9/taskArtifacts) has not been locked.

Eu também tentei configurar 'criar-soltar' na configuração de hibernação, mas também requer reiniciar o virgo. Mesmo a reimplantação do aplicativo não ajuda.

O que devo fazer para executar webtests com o banco de dados vazio?

questionAnswers(1)

yourAnswerToTheQuestion