构建Apache Beam Cassandra JAR时没有重新打包的依赖项

时间:2019-03-20 06:29:38

标签: java gradle cassandra guava apache-beam

尝试为Apache Beam Cassandra JAR编译和使用快照。 似乎该构建未在JAR中打包Guava依赖项。 当其他代码使用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 :(得分:0)

因此,您似乎需要添加以下依赖项才能使其在最新版本中运行。 希望对别人有帮助。

wso