Демон Gradle не используется повторно, несмотря на ту же версию Java / Gradle - PullRequest
0 голосов
/ 16 октября 2019

Я запускаю gradle 5.6.2 / Java 11 на докер-контейнере как непривилегированный произвольный пользователь (без записи / etc / passwd) и собираю через docker exec. Если я запускаю демон через gradle --foreground, а затем запускаю gradle build, демон всегда считается несовместимым, несмотря на то, что все переменные среды и конфигурация одинаковы. Gradle сообщает мне At least one daemon option is different, но не может сказать мне, какие варианты вызывают проблему или предоставить какой-либо полезный контекст вообще. Из вывода --info я не вижу никакой существенной разницы:

Found daemon DaemonInfo{pid=2349, address=[faff1188-7330-4666-8735-46fd97109411 port:33491, addresses:[/127.0.0.1]], state=Idle, lastBusy=1571244832816, context=DefaultDaemonContext[uid=ba368fe6-ab22-4d82-8780-a1b58dd80baf,javaHome=/usr/lib/jvm/adoptopenjdk-11-
hotspot-amd64,daemonRegistryDir=/var/gradle/daemon,pid=2349,idleTimeout=10800000,priority=NORMAL,daemonOpts=-Xms64m,-Xmx64m,-Dfile.encoding=US-ASCII,-Duser.country=US,-Duser.language=en,-Duser.variant]} however its context does not match the desired criteria.
At least one daemon option is different.
Wanted: DefaultDaemonContext[uid=null,javaHome=/usr/lib/jvm/adoptopenjdk-11-hotspot-amd64,daemonRegistryDir=/var/gradle/daemon,pid=2416,idleTimeout=null,priority=NORMAL,daemonOpts=--add-opens,java.base/java.util=ALL-UNNAMED,--add-opens,java.base/java.lang=ALL-U
NNAMED,--add-opens,java.base/java.lang.invoke=ALL-UNNAMED,--add-opens,java.prefs/java.util.prefs=ALL-UNNAMED,-XX:MaxMetaspaceSize=256m,-XX:+HeapDumpOnOutOfMemoryError,-Xms256m,-Xmx512m,-Dfile.encoding=US-ASCII,-Duser.country=US,-Duser.language=en,-Duser.variant
]
Actual: DefaultDaemonContext[uid=ba368fe6-ab22-4d82-8780-a1b58dd80baf,javaHome=/usr/lib/jvm/adoptopenjdk-11-hotspot-amd64,daemonRegistryDir=/var/gradle/daemon,pid=2349,idleTimeout=10800000,priority=NORMAL,daemonOpts=-Xms64m,-Xmx64m,-Dfile.encoding=US-ASCII,-Dus
er.country=US,-Duser.language=en,-Duser.variant]

  Looking for a different daemon...

Как я могу убедиться, что мой демон переднего плана используется - вместо того, чтобы запускать новый демон в каждой сборке и тратить слишком много времени?

1 Ответ

0 голосов
/ 17 октября 2019

Существуют различия как в дополнительных параметрах --add-opens, так и в значениях xms / xmx. Посмотрите на daemonOpts в строках «Требуются» и «Фактические».

Когда вы запускаете демон с опцией --foreground, он не будет оценивать ваш проект. Поэтому любые опции, которые вы здесь указали (например, через org.gradle.jvmargs), не будут использоваться.

Однако вы можете установить те же значения, которые использовались в вашем проекте, в переменной среды GRADLE_OPTS перед запуском демона. Это должно сделать его совместимым. Но почему вы используете эту опцию в первую очередь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...