Привет, Крис. Извините, что проигнорировал ваш предыдущий ответ. У меня есть упрощенная установка для подтверждения концепции мастерства. Я обошел конфликт, разделив проекты (как в моем случае, я имел дело с издателем Pub / Sub и проектом Dataflow). Это действительно не оптимально, но пока подойдет. Спасибо за внимание, я буду следить за этой проблемой.

кже поднял вопрос GitHub для этого -https://github.com/googleapis/google-cloud-java/issues/4095)

У меня есть последние версии следующих 2 зависимостей для Apache Beam:

Зависимость 1 -Google-облако потоков данных, Java-СДК-все

(Дистрибутив Apache Beam, разработанный для упрощения использования Apache Beam в службе облачных данных Google -https://mvnrepository.com/artifact/com.google.cloud.dataflow/google-cloud-dataflow-java-sdk-all)

<dependency>
  <groupId>com.google.cloud.dataflow</groupId>
  <artifactId>google-cloud-dataflow-java-sdk-all</artifactId>
  <version>2.5.0</version>
</dependency>

Зависимость 2 -лучевые бегуны-Google-облако Java-потока данных

(Я предполагаю, что это позволяет реально запустить конвейер Beam внутри облачного потока данных Google)

https://mvnrepository.com/artifact/org.apache.beam/beam-runners-google-cloud-dataflow-java

<dependency>
  <groupId>org.apache.beam</groupId>
  <artifactId>beam-runners-google-cloud-dataflow-java</artifactId>
  <version>2.8.0</version>
</dependency>

Установка Maven отлично работает с этими 2 зависимостями. Мне нужно добавить следующую (3-ю) зависимость для независимой подписки на паб / подпункт Google Cloud вне конвейера Apache Beam:

Google-облако PubSub

https://mvnrepository.com/artifact/com.google.cloud/google-cloud-pubsub

<dependency>
  <groupId>com.google.cloud</groupId>
  <artifactId>google-cloud-pubsub</artifactId>
  <version>1.53.0</version>
</dependency>

(Это последняя версия). После того, как это добавлено, я получаю следующий конфликт после того, как я делаюmvn clean install:

Could not resolve version conflict among [com.google.cloud:google-cloud-pubsub:jar:1.53.0 -> com.google.cloud:google-cloud-core-grpc:jar:1.53.0 -> io.grpc:grpc-protobuf:jar:1.16.1 -> io.grpc:grpc-core:jar:1.16.1, com.google.cloud:google-cloud-pubsub:jar:1.53.0 -> com.google.cloud:google-cloud-core-grpc:jar:1.53.0 -> io.grpc:grpc-protobuf:jar:1.16.1 -> io.grpc:grpc-protobuf-lite:jar:1.16.1 -> io.grpc:grpc-core:jar:1.16.1, com.google.cloud:google-cloud-pubsub:jar:1.53.0 -> io.grpc:grpc-netty-shaded:jar:1.16.1 -> io.grpc:grpc-core:jar:[1.16.1,1.16.1], com.google.cloud:google-cloud-pubsub:jar:1.53.0 -> io.grpc:grpc-stub:jar:1.16.1 -> io.grpc:grpc-core:jar:1.16.1, com.google.cloud:google-cloud-pubsub:jar:1.53.0 -> io.grpc:grpc-auth:jar:1.16.1 -> io.grpc:grpc-core:jar:[1.16.1,1.16.1], com.google.cloud.dataflow:google-cloud-dataflow-java-sdk-all:jar:2.5.0 -> org.apache.beam:beam-sdks-java-io-google-cloud-platform:jar:2.5.0 -> io.grpc:grpc-core:jar:1.2.0, com.google.cloud.dataflow:google-cloud-dataflow-java-sdk-all:jar:2.5.0 -> org.apache.beam:beam-sdks-java-io-google-cloud-platform:jar:2.5.0 -> io.grpc:grpc-netty:jar:1.2.0 -> io.grpc:grpc-core:jar:[1.2.0,1.2.0], com.google.cloud.dataflow:google-cloud-dataflow-java-sdk-all:jar:2.5.0 -> org.apache.beam:beam-sdks-java-io-google-cloud-platform:jar:2.5.0 -> com.google.cloud.bigtable:bigtable-protos:jar:1.0.0-pre3 -> io.grpc:grpc-core:jar:1.5.0, com.google.cloud.dataflow:google-cloud-dataflow-java-sdk-all:jar:2.5.0 -> org.apache.beam:beam-sdks-java-io-google-cloud-platform:jar:2.5.0 -> com.google.cloud.bigtable:bigtable-client-core:jar:1.0.0 -> io.grpc:grpc-core:jar:1.7.0, com.google.cloud.dataflow:google-cloud-dataflow-java-sdk-all:jar:2.5.0 -> org.apache.beam:beam-sdks-java-io-google-cloud-platform:jar:2.5.0 -> com.google.cloud.bigtable:bigtable-client-core:jar:1.0.0 -> io.opencensus:opencensus-contrib-grpc-util:jar:0.7.0 -> io.grpc:grpc-core:jar:1.6.1, com.google.cloud.dataflow:google-cloud-dataflow-java-sdk-all:jar:2.5.0 -> org.apache.beam:beam-sdks-java-io-google-cloud-platform:jar:2.5.0 -> io.grpc:grpc-all:jar:1.2.0 -> io.grpc:grpc-core:jar:[1.2.0,1.2.0], com.google.cloud.dataflow:google-cloud-dataflow-java-sdk-all:jar:2.5.0 -> org.apache.beam:beam-sdks-java-io-google-cloud-platform:jar:2.5.0 -> io.grpc:grpc-all:jar:1.2.0 -> io.grpc:grpc-okhttp:jar:1.2.0 -> io.grpc:grpc-core:jar:[1.2.0,1.2.0], com.google.cloud.dataflow:google-cloud-dataflow-java-sdk-all:jar:2.5.0 -> org.apache.beam:beam-sdks-java-io-google-cloud-platform:jar:2.5.0 -> io.grpc:grpc-all:jar:1.2.0 -> io.grpc:grpc-protobuf-nano:jar:1.2.0 -> io.grpc:grpc-core:jar:1.2.0

Я не получаю никакого конфликта установки Maven, если удаляю зависимости Apache Beam и сохраняюgoogle-cloud-pubsub зависимость.

Существует отдельный менеджер зависимостей Google 'BOM' (ведомость материалов), который должен управлять зависимостями зависимостей Google Cloud, но это не решает конфликт для меня:

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>com.google.cloud</groupId>
        <artifactId>google-cloud-bom</artifactId>
        <version>0.71.0-alpha</version>
        <type>pom</type>
        <scope>import</scope>
       </dependency>
     </dependencies>
  </dependencyManagement>

Я последовал за ответом на этот вопрос -

Как мне разрешить конфликт зависимостей в Maven?

и я определил, что

com.google.cloud:google-cloud-pubsub:jar:1.53.0

имеет подчиненную зависимость от:

io.grpc:grpc-core:jar:1.16.1

com.google.cloud.dataflow:google-cloud-dataflow-java-sdk-all:jar:2.5.0

имеет подчиненные зависимости от различных версий:

io.grpc:grpc-core:jar

(GRPC - это высокопроизводительная универсальная среда RPC с открытым исходным кодом)

Если я добавлюio.grpc:grpc-core:jar:1.6.1 как явная зависимость от моего POM-файла, он не «закрепляет» зависимость, так как он все еще включается как подчиненная зависимостьcom.google.cloud.dataflow:google-cloud-dataflow-java-sdk-all:jar:2.5.0.

В следующем выпуске GitHub garrettjonesgoogle подтверждает 21 февраля, что google-cloud-bom не закрепляет версию для io.grpc: grpc-core:

https://github.com/googleapis/google-cloud-java/issues/2890

Кажется, что зависимость Apache Beam управляет различными версиямиio.grpc:grpc-core:jar внутренне, однако, это противоречит (согласованной) версии, используемой зависимостью Google pub / sub.

Что я могу сделать, чтобы обойти это? Могу ли я как-то изолировать подчиненные зависимости с помощью Maven?

Ответы на вопрос(2)

Ваш ответ на вопрос