【发布时间】:2014-06-09 12:30:15
【问题描述】:
我们有一种情况,我们在运行 gradle 的 VM 中占用了一个 Jetty 实例。
但是,当我们在 gradle 守护进程中运行时,这会非常失败:我们并没有完全摆脱 Jetty 实例,因此它必须随着 gradle 进程本身而死。 (不过,这并不是什么大问题,因为无论如何我们都不希望在这个 CI 集成测试案例中使用 gradle 守护进程)。
所以,我们想知道当前任务是否在 gradle 守护进程中运行 - 这样我们就可以抛出异常或以其他方式通知用户这是错误的方法,请运行这个非守护进程。
【问题讨论】:
-
也许我不明白你在追求什么,但是
Thread.currentThread().isDaemon()不起作用吗? -
Gradle 有这个“守护程序配置”,您发出的第一个 gradle-command 启动守护进程,随后的命令只与该进程对话。这样您就不会产生 JVM 和解析文件等的启动成本 - 您可以对发出的命令进行“即时反应”。然而,这个守护进程永远存在(或者直到你杀死它),并且由于 JVM 可能被加载的类等“污染”,所以应该可以从 Gradle 脚本中知道它是在守护进程中运行还是在不是。
标签: gradle gradle-daemon