Gradle commandLine任务不会退出

时间:2015-04-10 17:14:11

标签: java groovy gradle

我正在尝试使用Gradle任务启动服务器。我有它工作,但Gradle挂起在服务器上启动而不退出。环顾四周,我看到workaround1 workaround2,但我想知道是否有更清洁的实施。看起来Gradle会有更清洁的实现。

task startVertx(type:Exec) {

        workingDir 'build/classes/main'
        commandLine '../../../vertx/bin/vertx', 'run', 'Server'

        standardOutput = new ByteArrayOutputStream()

        //extention method startVertex.output() for output
        ext.output = {
                return standardOutput.toString()
        }

}

这就是我所做的,但正如其他人所说,我可能会错误地思考问题

task startVertx << {
    ProcessBuilder pb = new ProcessBuilder(["../../../vertx/bin/vertx",   "run", "Server"])
    pb.directory(new File("build/classes/main"))
    pb.start()
}

task launch(type: Exec, dependsOn: startVertx){

    commandLine 'firefox', 'http://localhost:8080'

    //store the output instead of printing to the console:
    standardOutput = new ByteArrayOutputStream()

    //extension method stopTomcat.output() can be used to obtain the output:
    ext.output = {
        return standardOutput.toString()
    }
}

task stopVertx(type: Exec) {
    commandLine 'killall', 'java'
}

1 个答案:

答案 0 :(得分:-1)

使用其他答案的组合,看起来我应该对我的测试方式有所不同。