actions-on-google-java icon indicating copy to clipboard operation
actions-on-google-java copied to clipboard

Dependency issue with GCP jars like cloud logging

Open abharku opened this issue 6 years ago • 4 comments

This version is not compatible if we are using any GCP functionality within the action. I got following dependency conflict: Description Resource Path Location Type Could not resolve version conflict among [StarfishELK:StarfishELK:jar:0.0.1-SNAPSHOT -> com.google.cloud:google-cloud-logging:jar:1.98.0 -> com.google.cloud:google-cloud-core-grpc:jar:1.91.2 -> com.google.api:gax-grpc:jar:1.49.0 -> io.grpc:grpc-netty-shaded:jar:1.23.0 -> io.grpc:grpc-core:jar:[1.23.0,1.23.0], StarfishELK:StarfishELK:jar:0.0.1-SNAPSHOT -> com.google.cloud:google-cloud-logging:jar:1.98.0 -> com.google.cloud:google-cloud-core-grpc:jar:1.91.2 -> com.google.api:gax-grpc:jar:1.49.0 -> io.grpc:grpc-alts:jar:1.23.0 -> io.grpc:grpc-grpclb:jar:1.23.0 -> io.grpc:grpc-core:jar:[1.23.0,1.23.0], StarfishELK:StarfishELK:jar:0.0.1-SNAPSHOT -> com.google.cloud:google-cloud-logging:jar:1.98.0 -> com.google.cloud:google-cloud-core-grpc:jar:1.91.2 -> com.google.api:gax-grpc:jar:1.49.0 -> io.grpc:grpc-alts:jar:1.23.0 -> io.grpc:grpc-core:jar:[1.23.0,1.23.0], StarfishELK:StarfishELK:jar:0.0.1-SNAPSHOT -> com.google.cloud:google-cloud-logging:jar:1.98.0 -> com.google.cloud:google-cloud-core-grpc:jar:1.91.2 -> io.grpc:grpc-core:jar:1.24.0, StarfishELK:StarfishELK:jar:0.0.1-SNAPSHOT -> io.grpc:grpc-all:jar:1.23.0 -> io.grpc:grpc-core:jar:[1.23.0,1.23.0], StarfishELK:StarfishELK:jar:0.0.1-SNAPSHOT -> io.grpc:grpc-all:jar:1.23.0 -> io.grpc:grpc-netty:jar:1.23.0 -> io.grpc:grpc-core:jar:[1.23.0,1.23.0], StarfishELK:StarfishELK:jar:0.0.1-SNAPSHOT -> io.grpc:grpc-all:jar:1.23.0 -> io.grpc:grpc-okhttp:jar:1.23.0 -> io.grpc:grpc-core:jar:[1.23.0,1.23.0], StarfishELK:StarfishELK:jar:0.0.1-SNAPSHOT -> io.grpc:grpc-all:jar:1.23.0 -> io.grpc:grpc-testing:jar:1.23.0 -> io.grpc:grpc-core:jar:[1.23.0,1.23.0], com.starfish.utils:intent-parser:jar:1.0-SNAPSHOT -> com.google.cloud:google-cloud-datastore:jar:1.98.0 -> io.grpc:grpc-core:jar:1.24.0, com.google.actions:actions-on-google:jar:1.7.0 -> io.grpc:grpc-protobuf:jar:1.15.1 -> io.grpc:grpc-core:jar:1.15.1, com.google.actions:actions-on-google:jar:1.7.0 -> io.grpc:grpc-protobuf:jar:1.15.1 -> io.grpc:grpc-protobuf-lite:jar:1.15.1 -> io.grpc:grpc-core:jar:1.15.1, com.google.actions:actions-on-google:jar:1.7.0 -> io.grpc:grpc-stub:jar:1.15.1 -> io.grpc:grpc-core:jar:1.15.1, com.google.actions:actions-on-google:jar:1.7.0 -> io.grpc:grpc-auth:jar:1.15.1 -> io.grpc:grpc-core:jar:[1.15.1,1.15.1]]

org.eclipse.aether.collection.UnsolvableVersionConflictException: Could not resolve version conflict among [StarfishELK:StarfishELK:jar:0.0.1-SNAPSHOT -> com.google.cloud:google-cloud-logging:jar:1.98.0 -> com.google.cloud:google-cloud-core-grpc:jar:1.91.2 -> com.google.api:gax-grpc:jar:1.49.0 -> io.grpc:grpc-netty-shaded:jar:1.23.0 -> io.grpc:grpc-core:jar:[1.23.0,1.23.0], StarfishELK:StarfishELK:jar:0.0.1-SNAPSHOT -> com.google.cloud:google-cloud-logging:jar:1.98.0 -> com.google.cloud:google-cloud-core-grpc:jar:1.91.2 -> com.google.api:gax-grpc:jar:1.49.0 -> io.grpc:grpc-alts:jar:1.23.0 -> io.grpc:grpc-grpclb:jar:1.23.0 -> io.grpc:grpc-core:jar:[1.23.0,1.23.0], StarfishELK:StarfishELK:jar:0.0.1-SNAPSHOT -> com.google.cloud:google-cloud-logging:jar:1.98.0 -> com.google.cloud:google-cloud-core-grpc:jar:1.91.2 -> com.google.api:gax-grpc:jar:1.49.0 -> io.grpc:grpc-alts:jar:1.23.0 -> io.grpc:grpc-core:jar:[1.23.0,1.23.0], StarfishELK:StarfishELK:jar:0.0.1-SNAPSHOT -> com.google.cloud:google-cloud-logging:jar:1.98.0 -> com.google.cloud:google-cloud-core-grpc:jar:1.91.2 -> io.grpc:grpc-core:jar:1.24.0, StarfishELK:StarfishELK:jar:0.0.1-SNAPSHOT -> io.grpc:grpc-all:jar:1.23.0 -> io.grpc:grpc-core:jar:[1.23.0,1.23.0], StarfishELK:StarfishELK:jar:0.0.1-SNAPSHOT -> io.grpc:grpc-all:jar:1.23.0 -> io.grpc:grpc-netty:jar:1.23.0 -> io.grpc:grpc-core:jar:[1.23.0,1.23.0], StarfishELK:StarfishELK:jar:0.0.1-SNAPSHOT -> io.grpc:grpc-all:jar:1.23.0 -> io.grpc:grpc-okhttp:jar:1.23.0 -> io.grpc:grpc-core:jar:[1.23.0,1.23.0], StarfishELK:StarfishELK:jar:0.0.1-SNAPSHOT -> io.grpc:grpc-all:jar:1.23.0 -> io.grpc:grpc-testing:jar:1.23.0 -> io.grpc:grpc-core:jar:[1.23.0,1.23.0], com.starfish.utils:intent-parser:jar:1.0-SNAPSHOT -> com.google.cloud:google-cloud-datastore:jar:1.98.0 -> io.grpc:grpc-core:jar:1.24.0, com.google.actions:actions-on-google:jar:1.7.0 -> io.grpc:grpc-protobuf:jar:1.15.1 -> io.grpc:grpc-core:jar:1.15.1, com.google.actions:actions-on-google:jar:1.7.0 -> io.grpc:grpc-protobuf:jar:1.15.1 -> io.grpc:grpc-protobuf-lite:jar:1.15.1 -> io.grpc:grpc-core:jar:1.15.1, com.google.actions:actions-on-google:jar:1.7.0 -> io.grpc:grpc-stub:jar:1.15.1 -> io.grpc:grpc-core:jar:1.15.1, com.google.actions:actions-on-google:jar:1.7.0 -> io.grpc:grpc-auth:jar:1.15.1 -> io.grpc:grpc-core:jar:[1.15.1,1.15.1]] at org.eclipse.aether.util.graph.transformer.NearestVersionSelector.newFailure(NearestVersionSelector.java:159) at org.eclipse.aether.util.graph.transformer.NearestVersionSelector.backtrack(NearestVersionSelector.java:120) at org.eclipse.aether.util.graph.transformer.NearestVersionSelector.selectVersion(NearestVersionSelector.java:93) at org.eclipse.aether.util.graph.transformer.ConflictResolver.transformGraph(ConflictResolver.java:181) at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:266) at org.eclipse.aether.internal.impl.DefaultRepositorySystem.collectDependencies(DefaultRepositorySystem.java:279) at org.apache.maven.project.DefaultProjectDependenciesResolver.resolve(DefaultProjectDependenciesResolver.java:169) at org.apache.maven.project.DefaultProjectBuilder.resolveDependencies(DefaultProjectBuilder.java:225) at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:198) at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:122) at org.eclipse.m2e.core.internal.embedder.MavenImpl.readMavenProject(MavenImpl.java:630) at org.eclipse.m2e.core.internal.project.registry.DefaultMavenDependencyResolver.resolveProjectDependencies(DefaultMavenDependencyResolver.java:63) at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refreshPhase2(ProjectRegistryManager.java:551) at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.lambda$2(ProjectRegistryManager.java:515) at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:177) at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:151) at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refresh(ProjectRegistryManager.java:513) at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refresh(ProjectRegistryManager.java:365) at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refresh(ProjectRegistryManager.java:312) at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.getProjectFacade(MavenBuilder.java:155) at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod$1.call(MavenBuilder.java:90) at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:177) at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:151) at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:99) at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.execute(MavenBuilder.java:87) at org.eclipse.m2e.core.internal.builder.MavenBuilder.build(MavenBuilder.java:201) at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:833) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:220) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:263) at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:316) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:319) at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:371) at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:392) at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:154) at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:244) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63) pom.xml /My-MP-Bean line 1 Maven Dependency Problem

I have resolved it for now by excluding it like this:

<dependency> <groupId>com.google.actions</groupId> <artifactId>actions-on-google</artifactId> <version>1.7.0</version> <exclusions> <exclusion> <groupId>io.grpc</groupId> <artifactId>grpc-netty-shaded</artifactId> </exclusion> <exclusion> <groupId>io.grpc</groupId> <artifactId>grpc-protobuf</artifactId> </exclusion> <exclusion> <groupId>io.grpc</groupId> <artifactId>grpc-auth</artifactId> </exclusion> </exclusions> </dependency>

abharku avatar Oct 26 '19 06:10 abharku

So you're using a different set of gRPC APIs in your application?

Fleker avatar Oct 29 '19 14:10 Fleker

@Fleker I am not using any gRPC API directly within my application but we are using GCP cloud logging which in turn requires gRPC API. The version of cloud logging has different dependent gRPC API then what you have in action sdk dependency. This means we can only work by excluding one or the another. Good thing we are only using action sdk java for building responses so there is no conflicts related to IO.

Ideally I would assume action sdk build should be on parallel line to cloud API java builds. So that we can write and use other GCP cloud API's along with our actions.

abharku avatar Oct 29 '19 15:10 abharku

Hi, This is the same kind of issue that #29

cbeaujoin avatar Oct 30 '19 12:10 cbeaujoin

At the moment we are not aligning with Cloud Logging dependencies, so it is possible to occasionally run into conflicts, like what happened in #29.

Fleker avatar Oct 30 '19 14:10 Fleker