我正在尝试使用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'
}
答案 0 :(得分:-1)
使用其他答案的组合,看起来我应该对我的测试方式有所不同。