Gradle clean не может удалить зависимую банку - PullRequest
0 голосов
/ 22 мая 2019

У меня есть многомодульный проект Gradle 4.4 - есть родительский build.gradle, а затем два дочерних проекта Gradle, каждый со своим build.gradle.Оба являются проектами Java (один для кода разработчика, другой для обеспечения качества).Проект dev является зависимостью от проекта QA (у меня testCompile project(':dev-project') в build.gradle проекта QA).В противном случае нет ничего интересного или необычного в файлах build.gradle - они импортируют плагин java и com.github.johnrengelman.shadow.

Если я пытаюсь собрать родительский проект дважды подряд (без открытых IDE,при запуске ./gradlew clean build из Git Bash без прав администратора) сборка завершается неудачно:

09:55:24.449 [DEBUG] [org.gradle.internal.progress.DefaultBuildOperationExecutor] Completing Build operation 'Execute clean for :dev-project:clean'
09:55:24.449 [DEBUG] [org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter] Removed task artifact state for {} from context.
09:55:24.450 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':dev-project:clean'
09:55:24.450 [LIFECYCLE] [class org.gradle.internal.buildevents.TaskExecutionLogger] :dev-project:clean FAILED
09:55:24.451 [WARN] [org.gradle.api.Project] :dev-project:clean took 1587ms
09:55:24.451 [DEBUG] [org.gradle.internal.progress.DefaultBuildOperationExecutor] Completing Build operation 'Task :dev-project:clean'
09:55:24.451 [DEBUG] [org.gradle.internal.progress.DefaultBuildOperationExecutor] Build operation 'Task :dev-project:clean' completed
09:55:24.452 [INFO] [org.gradle.execution.taskgraph.DefaultTaskPlanExecutor] :dev-project:clean (Thread[Task worker for ':',5,main]) completed. Took 1.588 secs.
09:55:24.452 [DEBUG] [org.gradle.internal.work.DefaultWorkerLeaseService] Worker lease root.1.14 completed (1 worker(s) in use)
09:55:24.452 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Task worker for ':': released lock on root.1.14
09:55:24.452 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Task worker for ':': released lock on :
09:55:24.452 [DEBUG] [org.gradle.execution.taskgraph.DefaultTaskPlanExecutor] Task worker [Thread[Task worker for ':',5,main]] finished, busy: 1.588 secs, idle:     0.002 secs
09:55:24.453 [DEBUG] [org.gradle.execution.taskgraph.DefaultTaskPlanExecutor] Task worker [Thread[Daemon worker Thread 3,5,main]] finished, busy: 0.0 secs, idle:     1.59 secs
09:55:24.453 [DEBUG] [org.gradle.execution.taskgraph.DefaultTaskPlanExecutor] Task worker [Thread[Task worker for ':' Thread 2,5,main]] finished, busy: 0.0 secs,     idle: 1.591 secs
09:55:24.454 [DEBUG] [org.gradle.execution.taskgraph.DefaultTaskPlanExecutor] Task worker [Thread[Task worker for ':' Thread 3,5,main]] finished, busy: 0.0 secs,     idle: 1.592 secs
09:55:24.455 [DEBUG] [org.gradle.internal.progress.DefaultBuildOperationExecutor] Completing Build operation 'Run tasks'
09:55:24.456 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
09:55:24.456 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] FAILURE: Build failed with an exception.
09:55:24.456 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
09:55:24.456 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * What went wrong:
09:55:24.456 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Execution failed for task 'dev-project:clean'.
09:55:24.456 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > Unable to delete file:     C:\workspace\parent-project\dev-project\libs\dev-project-0.1.0.jar
09:55:24.457 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
09:55:24.457 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Try:
09:55:24.457 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]  Run with --scan to get full insights.
09:55:24.457 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
09:55:24.457 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Exception is:
09:55:24.457 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] org.gradle.api.tasks.TaskExecutionException: Execution failed for task     ':dev-project:clean'.
09:55:24.457 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(    ExecuteActionsTaskExecuter.java:100)
09:55:24.457 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(    ExecuteActionsTaskExecuter.java:70)
09:55:24.458 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at     org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
09:55:24.458 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(    SkipUpToDateTaskExecuter.java:62)

Я подозреваю, что dev-project JAR невозможно удалить, поскольку он зависит от проекта QA, и поэтому Gradleсохраняет некоторую блокировку.

Я могу успешно построить, если удаляю процесс Java(TM) Platform SE Binary в диспетчере задач Windows, но я бы хотел, чтобы он был автоматическим.

1 Ответ

0 голосов
/ 29 мая 2019

Эта ошибка вызвана демоном Gradle - он продолжает работать в фоновом режиме после завершения сборки и по какой-то причине удерживает блокировку на банке dev-project.

Добавление org.gradle.daemon=false в мой глобальныйФайл gradle.properties решил проблему, хотя и за счет немного более медленных сборок.

У меня возникла проблема с командой Gradle, и я обновлю этот ответ, если что-нибудь из этого получится.

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