2017-09-11 6 views
0

(AppEngine 끝점과 상호 작용하기 위해) 최신 버전의 Google API 클라이언트가 포함됩니다. 조립시Google API 클라이언트가 잘못된 버전의 jackson-core를 연결합니다.

나는이 충돌을 얻고있다 :

* 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 

은 내 종속성을 확인 : 당신이 볼 수 있듯이

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

jackson-core의 버전이 포함 된 2.1.3입니다. 그러나

, 기능 com.fasterxml.jackson.core.JsonFactory.requiresPropertyOrdering()Z의 첫 번째 선언은 버전 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/

잘못된 jackson-core 버전을 연결하는 구글 라이브러리 있습니까?

관련성이있는 경우 내 v1 Google Cloud Endpoints 코드를 v2로 이전하는 과정에서 문제가 발생하기 시작합니다.

업데이트 내가 구글 API 클라이언트에서 종속성을 제거 할 때 또는 내가 그것을 업그레이드 강제 때 같은 오류가 발생 한

.

예 종속성 트리 업그레이드 :

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

업데이트 :

configurations { 
    all { 
     resolutionStrategy { 
      force 'com.fasterxml.jackson.core:jackson-core:2.6.0' 
      force 'com.fasterxml.jackson.databind:jackson-databind:2.6.0' 
     } 
    } 
} 

가 Gradle을 내가 종속성을 제거하는 데 사용 니펫을 :

+--- 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을 조각은 내가 종속성을 업그레이드하는 데 사용 2

추가 문제가있는 것으로 보입니다. 동기화 할 때 다음 오류가 있습니다.

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) 

이 동기화 실패로 인해 빌드가 실패 할 수 있습니다.

+0

GenClientLibAction을 알아 냈습니까? 마이그레이션 이후 동일한 문제가 발생했습니다. – jirungaray

+0

불행히도 아닙니다.나는 마이 그 레이션하는 대신 처음부터 시스템을 시작하는 것을 고려하고있다. – Knossos

답변

0

문제는 해킹 된 솔루션을 통해 해결되었습니다.

github issue tracker for the Google Cloud Platform에 문제가 있습니다.

solution itself can be found here.

간단히 말해서 모든 빌드 스크립트 종속성을 루트 프로젝트 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

Endpoints 프레임 워크에는 클라이언트 라이브러리보다 새로운 버전의 Jackson이 필요합니다. 동일한 라이브러리에 클라이언트 라이브러리와 엔드 포인트 프레임 워크가있는 경우 클라이언트 라이브러리에서 Jackson 종속성을 제외해야합니다.

+0

내가 제안한 결과로 내 게시물을 편집했습니다. 나는 종속성을 제거하고 그것을 강제적으로 업그레이드하려고 노력했다. – Knossos

+0

장거리지만, 'exclude group :'com.google.guava ', 모듈 :'guava-jdk5 '를 가지고 계실 수 있습니까? – saiyr

+0

불행히도 변경 사항이 없습니다 (구아바가 종속성을 갖지 않는 것을 제외하고) – Knossos