我有以下作業正常的 gradle 任務:
abstract class StartDevTask : DefaultTask() {
private val developmentTasks = listOf(
"dev-db",
"run",
"watch"
)
@TaskAction
fun startDevelopmentTasks() {
developmentTasks
.map { ProcessBuilder("./gradlew", it).start() }
.map {
Thread { it.waitFor() }.also { it.start() }
}
.map { it.join() }
println("All processes finished")
}
}
// registering the task over here
tasks.register<StartDevTask>("start-dev")
然后我可以從命令列呼叫:
$ ./gradlew start-dev
這作業得很好,但是當我用 Ctrl C 終止行程并檢查有多少行程活著時:
$ ps -ax | grep gradlew
我可以看到很多剩余的行程,要洗掉它們,我可以運行 ./gradlew --stop
我的問題是;./gradlew --stop該任務被終止后我該如何運行?或者有人可以暗示我有更好的選擇嗎?
謝謝!!
uj5u.com熱心網友回復:
剩余的行程是Gradle 守護行程。Gradle 使用這些長期存在的行程通過重用快取計算來加速未來的構建。
如果您真的不想讓它們閑逛,您可以運行帶有--no-daemon標志的Gradle,告訴它不要讓守護行程繼續運行。
例如:
./gradlew start-dev --no-daemon
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/355003.html
