Pet*_*ahn 11 jenkins-pipeline gradle-daemon
如何让 gradle 不与守护进程交谈?
./gradlew --no-daemon -Porg.gradle.daemon=false -Dorg.gradle.daemon=false build -x test
Starting daemon
IDLE
Run Code Online (Sandbox Code Playgroud)
我们在 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.
Run Code Online (Sandbox Code Playgroud)
似乎 gradle 需要守护进程才能不使用它。我将尝试放弃并使用守护进程,这是 gradle 守护进程文档推荐的。
为我投入org.gradle.daemon=false
工作。~/.gradle/gradle.properties
有一个警告,因为它仍然需要派生一个进程才能更改 JVM 设置。该进程实际上与常规守护进程相同,但对于当前构建而言是私有的,并在之后终止。
为了遵守此构建的 JVM 设置,将分叉一个一次性守护进程。请参阅https://docs.gradle.org/7.0/userguide/gradle_daemon.html#sec:disabling_the_daemon。守护进程将在构建结束时停止
如果 JVM 设置已经匹配,则不会执行此操作。
请注意,虽然您获得“效率较低”的构建,但您确实会在每次运行后修剪 gradle 缓存。否则,只有当共享守护进程退出时,它才会被修剪,而这在 CI 系统中可能永远不会出现。
归档时间: |
|
查看次数: |
3781 次 |
最近记录: |