I am including the latest version of the Google API client (for interacting with AppEngine Endpoints).
I am getting this crash when assembling:
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':backend:endpointsDiscoveryDocs'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:63)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:124)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:80)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:105)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:99)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:625)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:580)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:99)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: java.lang.NoSuchMethodError: com.fasterxml.jackson.core.JsonFactory.requiresPropertyOrdering()Z
at com.fasterxml.jackson.databind.ObjectMapper.<init>(ObjectMapper.java:537)
at com.fasterxml.jackson.databind.ObjectMapper.<init>(ObjectMapper.java:448)
at com.google.api.server.spi.ObjectMapperUtil.createStandardObjectMapper(ObjectMapperUtil.java:75)
at com.google.api.server.spi.ObjectMapperUtil.createStandardObjectMapper(ObjectMapperUtil.java:62)
at com.google.api.server.spi.tools.GenClientLibAction.<clinit>(GenClientLibAction.java:37)
at com.google.api.server.spi.tools.EndpointsTool.<init>(EndpointsTool.java:55)
at com.google.cloud.tools.gradle.endpoints.framework.server.task.GenerateDiscoveryDocsTask.generateDiscoveryDocs(GenerateDiscoveryDocsTask.java:122)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.doExecute(DefaultTaskClassInfoStore.java:141)
at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:134)
at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:121)
at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:731)
at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:705)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:122)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:111)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)
... 27 more
I checked my dependencies:
+--- com.google.apis:google-api-services-oauth2:v1-rev129-1.22.0
| \--- com.google.api-client:google-api-client:1.22.0
| +--- com.google.oauth-client:google-oauth-client:1.22.0
| | +--- com.google.http-client:google-http-client:1.22.0
| | | \--- com.google.code.findbugs:jsr305:1.3.9 -> 3.0.1
| | \--- com.google.code.findbugs:jsr305:1.3.9 -> 3.0.1
| +--- com.google.http-client:google-http-client-jackson2:1.22.0
| | +--- com.google.http-client:google-http-client:1.22.0 (*)
| | \--- com.fasterxml.jackson.core:jackson-core:2.1.3
| \--- com.google.guava:guava-jdk5:17.0
As you can see, the version of jackson-core
included is 2.1.3
.
However, the first declaration of the function com.fasterxml.jackson.core.JsonFactory.requiresPropertyOrdering()Z
occurs in version 2.3:
Are the Google libraries linking the wrong jackson-core
version?
In case it is relevant, this is starting to happen during the process of migrating my v1 Google Cloud Endpoints code to v2.
The same error occurs when I remove the dependency from Google API Client or when I force upgrade it.
Example dependency tree when upgrading:
+--- com.google.apis:google-api-services-oauth2:v1-rev129-1.22.0
| \--- com.google.api-client:google-api-client:1.22.0
| +--- com.google.oauth-client:google-oauth-client:1.22.0
| | +--- com.google.http-client:google-http-client:1.22.0
| | | \--- com.google.code.findbugs:jsr305:1.3.9 -> 3.0.1
| | \--- com.google.code.findbugs:jsr305:1.3.9 -> 3.0.1
| +--- com.google.http-client:google-http-client-jackson2:1.22.0
| | +--- com.google.http-client:google-http-client:1.22.0 (*)
| | \--- com.fasterxml.jackson.core:jackson-core:2.1.3 -> 2.6.0
| \--- com.google.guava:guava-jdk5:17.0
Gradle snippet I used to upgrade the dependency:
configurations {
all {
resolutionStrategy {
force 'com.fasterxml.jackson.core:jackson-core:2.6.0'
force 'com.fasterxml.jackson.databind:jackson-databind:2.6.0'
}
}
}
Gradle snippet I used to remove the dependency:
compile "com.google.apis:google-api-services-oauth2:v1-rev129-1.22.0", {
exclude group: "com.fasterxml.jackson.core", module: "jackson-core"
}
It seems there might be an additional issue. When syncing there is the following error:
14:13:27.882 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.google.api.server.spi.tools.GenClientLibAction
14:13:27.882 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at com.google.api.server.spi.tools.EndpointsTool.<init>(EndpointsTool.java:55)
14:13:27.882 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at com.google.cloud.tools.gradle.endpoints.framework.server.task.GenerateDiscoveryDocsTask.generateDiscoveryDocs(GenerateDiscoveryDocsTask.java:122)
14:13:27.882 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
It could be that this failed sync is making the builds fail each time.
The problem has been resolved through a hacky solution.
There is an issue on the github issue tracker for the Google Cloud Platform.
The solution itself can be found here.
The fix, in short, is to move all buildscript dependencies into the root project build.gradle
file.
And the suggestion on that bug is to add all buildscript dependencies in the root. So just move everything from backend/build.gradle/buildscript -> build.gradle/buildscript, so that dependencies are forced to their latest versions.