2017-09-11 4 views
0

J'inclus la dernière version du client API Google (pour interagir avec AppEngine Endpoints).Google API Client liant la mauvaise version de jackson-core

Je reçois cet accident lors du montage:

* 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 

J'ai vérifié mes dépendances:

+--- 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 

Comme vous pouvez le voir, la version de jackson-core inclus est 2.1.3.

Cependant, la première déclaration de la fonction com.fasterxml.jackson.core.JsonFactory.requiresPropertyOrdering()Z se produit dans la version 2.3:

http://grepcode.com/file/repo1.maven.org/maven2/com.fasterxml.jackson.core/jackson-core/2.3.0/com/fasterxml/jackson/core/JsonFactory.java/

sont les bibliothèques Google reliant la mauvaise version jackson-core?

Si cela s'avère pertinent, cela commence à se produire lors de la migration de mon code v1 Google Cloud Endpoints vers v2.

Update 1

La même erreur se produit lorsque je supprime la dépendance du client API Google ou lorsque je force le mettre à jour.

Exemple d'arbre de dépendance lors de la mise à niveau:

+--- 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 

extrait Gradle I utilisé pour mettre à niveau la dépendance:

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 j'ai utilisé pour supprimer la dépendance:

compile "com.google.apis:google-api-services-oauth2:v1-rev129-1.22.0", { 
    exclude group: "com.fasterxml.jackson.core", module: "jackson-core" 
} 

Mise à jour 2

Il semble qu'il pourrait y avoir un problème supplémentaire. Lors de la synchronisation, il est l'erreur suivante:

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) 

Il se pourrait que cela a échoué la synchronisation fait builds échouent à chaque fois.

+0

avez-vous trouvé le GenClientLibAction? J'ai le même problème depuis la migration – jirungaray

+0

Malheureusement pas.J'envisage de démarrer le système à partir de zéro au lieu de migrer. – Knossos

Répondre

0

Le problème a été résolu via une solution hacky.

Il y a un problème sur le github issue tracker for the Google Cloud Platform.

Le solution itself can be found here. Le correctif, en bref, consiste à déplacer toutes les dépendances de buildscript dans le fichier racine du projet build.gradle.

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.

0

L'infrastructure Endpoints requiert une version plus récente de Jackson que la bibliothèque cliente. Si vous avez une bibliothèque cliente et un framework Endpoint dans la même bibliothèque, vous devez exclure la dépendance Jackson de la bibliothèque cliente.

+0

J'ai fait une modification à mon poste avec les résultats de ce que vous suggérez. J'ai essayé d'enlever la dépendance et de l'améliorer de force. – Knossos

+0

Plan à long terme, mais pouvez-vous également essayer 'exclude group: 'com.google.guava', module: 'gava-jdk5'' en plus de ce que vous avez? – saiyr

+0

Malheureusement, pas de changement (autre que Guava n'étant plus une dépendance) – Knossos