Environment:
- Jib version: 3.5.2 (also reproduced on 3.4.5)
- Build tool: Gradle 9.2.1 (wrapper)
- OS: Debian 12 (Bookworm) GNU/Linux (Linux 6.1.0-27-amd64)
Description of the issue:
With Gradle 9.2.1, running Jib tasks emits:
Invocation of Task.project at execution time has been deprecated. This will fail with an error in Gradle 10. This API is incompatible with the configuration cache, which will become the only mode supported by Gradle in a future release. Consult the upgrading guide for further information: https://docs.gradle.org/9.2.1/userguide/upgrading_version_7.html#task_project
This appears to be caused by accessing Task.getProject() in BuildDockerTask (see the stacktrace excerpt below):
Expected behavior:
No deprecation warning should be raised. Jib tasks should avoid execution-time access to Task.getProject().
Steps to reproduce:
- create a minimal Gradle 9.2.1 wrapper project
- add the
id 'com.google.cloud.tools.jib' version '3.5.2' plugin
- add a minimal jib configuration (optional)
- run
./gradlew clean jibDockerBuild --warning-mode all --stacktrace
jib-gradle-plugin Configuration:
jib {
from {
image = 'gcr.io/distroless/java21-debian12'
}
to {
image = 'miniconnect/holodb'
tags = [version, 'latest']
auth {
username = findProperty('dockerHubUsername') ?: ''
password = findProperty('dockerHubPassword') ?: ''
}
}
container {
user = '65532:65532'
ports = ['3430']
args = ['/app/config.yaml']
mainClass = serverMainClass
}
}
Log output:
> Task :app:jibDockerBuild
Invocation of Task.project at execution time has been deprecated. This will fail with an error in Gradle 10. This API is incompatible with the configuration cache, which will become the only mode supported by Gradle in a future release. Consult the upgrading guide for further information: https://docs.gradle.org/9.2.1/userguide/upgrading_version_7.html#task_project
at org.gradle.internal.cc.impl.DeprecatedFeaturesListener.nagUserAbout(DeprecatedFeaturesListener.kt:98)
at org.gradle.internal.cc.impl.DeprecatedFeaturesListener.onProjectAccess(DeprecatedFeaturesListener.kt:70)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.gradle.internal.dispatch.MethodInvocation.invokeOn(MethodInvocation.java:77)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:28)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:19)
at org.gradle.internal.event.DefaultListenerManager$ListenerDetails.dispatch(DefaultListenerManager.java:581)
at org.gradle.internal.event.DefaultListenerManager$ListenerDetails.dispatch(DefaultListenerManager.java:551)
at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:84)
at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:70)
at org.gradle.internal.event.DefaultListenerManager$EventBroadcast$ListenerDispatch.dispatch(DefaultListenerManager.java:408)
at org.gradle.internal.event.DefaultListenerManager$EventBroadcast$ListenerDispatch.dispatch(DefaultListenerManager.java:393)
at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:44)
at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:67)
at org.gradle.internal.event.DefaultListenerManager$EventBroadcast$ListenerDispatch.dispatch(DefaultListenerManager.java:408)
at org.gradle.internal.event.DefaultListenerManager$EventBroadcast$ListenerDispatch.dispatch(DefaultListenerManager.java:393)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:88)
at jdk.proxy1/jdk.proxy1.$Proxy96.onProjectAccess(Unknown Source)
at org.gradle.internal.cc.impl.AbstractTaskProjectAccessChecker.notifyProjectAccess(TaskExecutionAccessCheckers.kt:47)
at org.gradle.api.internal.AbstractTask.getProject(AbstractTask.java:240)
at org.gradle.api.DefaultTask.getProject(DefaultTask.java:60)
at com.google.cloud.tools.jib.gradle.BuildDockerTask.buildDocker(BuildDockerTask.java:111)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)
at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:252)
[...]
Environment:
Description of the issue:
With Gradle 9.2.1, running Jib tasks emits:
This appears to be caused by accessing
Task.getProject()inBuildDockerTask(see the stacktrace excerpt below):jib/jib-gradle-plugin/src/main/java/com/google/cloud/tools/jib/gradle/BuildDockerTask.java
Line 111 in 7ca8957
Expected behavior:
No deprecation warning should be raised. Jib tasks should avoid execution-time access to
Task.getProject().Steps to reproduce:
id 'com.google.cloud.tools.jib' version '3.5.2'plugin./gradlew clean jibDockerBuild --warning-mode all --stacktracejib-gradle-pluginConfiguration:jib { from { image = 'gcr.io/distroless/java21-debian12' } to { image = 'miniconnect/holodb' tags = [version, 'latest'] auth { username = findProperty('dockerHubUsername') ?: '' password = findProperty('dockerHubPassword') ?: '' } } container { user = '65532:65532' ports = ['3430'] args = ['/app/config.yaml'] mainClass = serverMainClass } }Log output: