Нет перепакованных зависимостей при сборке Apache Beam Cassandra JAR - PullRequest
0 голосов
/ 20 марта 2019

Попытка скомпилировать и использовать снимок для Apache Beam Cassandra JAR. Похоже, что сборка не упаковывает зависимости Guava в JAR. Это приводит к сбою компиляции, когда JAR используется другим кодом - см. Следующее исключение:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/beam/vendor/guava/v20_0/com/google/common/base/Preconditions
    at org.apache.beam.sdk.io.cassandra.CassandraIO$Read.withHosts(CassandraIO.java:180)
    at org.apache.beam.examples.JoinFromCassandraToCassandra.main(JoinFromCassandraToCassandra.java:26)
Caused by: java.lang.ClassNotFoundException: org.apache.beam.vendor.guava.v20_0.com.google.common.base.Preconditions
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 2 more

Я не смог найти способ сделать пакет сборки gradle необходимыми зависимостями в JAR.

Построение с использованием команды:

gradle -p ./sdks/java/io/cassandra shadowJar

Кто-нибудь знает, как это можно сделать?

1 Ответ

0 голосов
/ 22 марта 2019

Похоже, вам нужно добавить следующие зависимости, чтобы он работал в последней версии.Надеюсь, это кому-нибудь поможет.

compile group: 'org.apache.beam', name: 'beam-vendor-guava-20_0', version: '0.1' compile group: 'org.apache.beam', name: 'beam-vendor-grpc-1_13_1', version: '0.2'

...