Jvm ApacheFlink中的类版本冲突

Jvm ApacheFlink中的类版本冲突,jvm,sbt,apache-flink,Jvm,Sbt,Apache Flink,我有两份申请。第一个是剧本!框架(v2.5.1)应用程序。此应用程序的任务是读取聚合数据。第二个是ApacheFlink(v1.1.2)应用程序。此应用程序的任务是编写聚合数据 错误 这是由于Play&Flink使用不同版本的com.typesafe.config(1.3.0 vs 1.2.1)造成的 我试过了 我尝试过使用阴影,但当我开始使用Akka时,会有更多的复杂性。Akka也有冲突的版本,因此我对config&Akka进行了着色,这导致Akka中出现配置错误。如果我将配置复制到正确的路径

我有两份申请。第一个是剧本!框架(v2.5.1)应用程序。此应用程序的任务是读取聚合数据。第二个是ApacheFlink(v1.1.2)应用程序。此应用程序的任务是编写聚合数据

错误 这是由于Play&Flink使用不同版本的com.typesafe.config(1.3.0 vs 1.2.1)造成的

我试过了 我尝试过使用阴影,但当我开始使用Akka时,会有更多的复杂性。Akka也有冲突的版本,因此我对config&Akka进行了着色,这导致Akka中出现配置错误。如果我将配置复制到正确的路径,则ActorSystem由于类版本不正确而无法初始化

研究 我对这方面不太了解,但似乎有很多JVM服务器通过加载父类来处理这个问题。这在弗林克可能吗

可能还有其他我没有尝试过的简单解决方案。如果有的话,请告诉我,我很乐意试一试


谢谢你的帮助

为什么不在sbt中将这两个应用程序定义为单独的项目呢?谢谢你的建议。play应用程序有一个项目,flink应用程序/模块有一个单独的项目,公共代码有第三个项目。Flink和Play都依赖于这个共同的项目。还有其他想法吗?我认为它们应该运行在具有不同类路径的不同JVM上,因此隔离定义依赖关系应该是很好的。您真的在公共项目中包含了所有依赖项吗?如果我运行LocalExecutionEnvironment,一切都很好。当我把它捆绑起来并在一台运行的Flink独立服务器上运行时,我会感到非常痛苦。看看flink源代码,它看起来就像是具有共享依赖项的同一个JVM。我现在正在探索创建我自己的类路径。为什么不在sbt中将这两个应用程序定义为单独的项目呢?谢谢你的建议。play应用程序有一个项目,flink应用程序/模块有一个单独的项目,公共代码有第三个项目。Flink和Play都依赖于这个共同的项目。还有其他想法吗?我认为它们应该运行在具有不同类路径的不同JVM上,因此隔离定义依赖关系应该是很好的。您真的在公共项目中包含了所有依赖项吗?如果我运行LocalExecutionEnvironment,一切都很好。当我把它捆绑起来并在一台运行的Flink独立服务器上运行时,我会感到非常痛苦。看看flink源代码,它看起来就像是具有共享依赖项的同一个JVM。我正在探索创建自己的类路径。可能是
java.lang.NoSuchMethodError: com.typesafe.config.ConfigFactory.defaultApplication(Lcom/typesafe/config/ConfigParseOptions;)Lcom/typesafe/config/Config;