Gradle --no-daemon 启动守护进程?
Gradle --no-daemon starts the daemon?
如何防止 gradle 与守护进程对话?
./gradlew --no-daemon -Porg.gradle.daemon=false -Dorg.gradle.daemon=false build -x test
Starting daemon
IDLE
我们在 ecs 上 运行 jenkins 节点,所以守护进程似乎并没有给我们带来太多好处。此外,我们 运行 在并行 jenkins 管道块中执行了几次 gradle,有时会看到守护进程错误 - 这是我不希望的:
[org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire exclusive lock on daemon addresses registry.
[org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
[org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
Daemon vm is shutting down... The daemon has exited normally or was terminated in response to a user interrupt.
似乎 gradle 需要守护进程才能不使用它。我将尝试放弃并使用 gradle 守护进程文档推荐的守护进程。
放弃并接受 --no-daemon 不是最佳选择。 运行 守护进程,即使在单个使用基于 jenkins ECS 的节点上也能提高性能。对于通过管道并行块同时在同一节点上执行多个 gradle 运行 的情况尤其如此。
如果守护进程有问题,修复它比尝试禁用它要好。
将 org.gradle.daemon=false
放入 ~/.gradle/gradle.properties
对我有用。
有一个警告,因为它仍然需要分叉一个进程才能更改 JVM 设置。这个过程实际上与常规守护进程相同,但对当前构建是私有的,并在之后终止。
To honour the JVM settings for this build a single-use Daemon process will be forked. See https://docs.gradle.org/7.0/userguide/gradle_daemon.html#sec:disabling_the_daemon.
Daemon will be stopped at the end of the build
如果 JVM 设置已经匹配,则不会执行此操作。
请注意,虽然您得到的是“效率较低”的构建,但您确实会在每个 运行 之后得到 gradle 缓存 p运行ed。否则它只会在共享守护程序退出时 p运行ed,这可能永远不会出现在 CI 系统中。
如何防止 gradle 与守护进程对话?
./gradlew --no-daemon -Porg.gradle.daemon=false -Dorg.gradle.daemon=false build -x test
Starting daemon
IDLE
我们在 ecs 上 运行 jenkins 节点,所以守护进程似乎并没有给我们带来太多好处。此外,我们 运行 在并行 jenkins 管道块中执行了几次 gradle,有时会看到守护进程错误 - 这是我不希望的:
[org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire exclusive lock on daemon addresses registry.
[org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
[org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
Daemon vm is shutting down... The daemon has exited normally or was terminated in response to a user interrupt.
似乎 gradle 需要守护进程才能不使用它。我将尝试放弃并使用 gradle 守护进程文档推荐的守护进程。
放弃并接受 --no-daemon 不是最佳选择。 运行 守护进程,即使在单个使用基于 jenkins ECS 的节点上也能提高性能。对于通过管道并行块同时在同一节点上执行多个 gradle 运行 的情况尤其如此。
如果守护进程有问题,修复它比尝试禁用它要好。
将 org.gradle.daemon=false
放入 ~/.gradle/gradle.properties
对我有用。
有一个警告,因为它仍然需要分叉一个进程才能更改 JVM 设置。这个过程实际上与常规守护进程相同,但对当前构建是私有的,并在之后终止。
To honour the JVM settings for this build a single-use Daemon process will be forked. See https://docs.gradle.org/7.0/userguide/gradle_daemon.html#sec:disabling_the_daemon. Daemon will be stopped at the end of the build
如果 JVM 设置已经匹配,则不会执行此操作。
请注意,虽然您得到的是“效率较低”的构建,但您确实会在每个 运行 之后得到 gradle 缓存 p运行ed。否则它只会在共享守护程序退出时 p运行ed,这可能永远不会出现在 CI 系统中。