Java 如何在集群部署的Storm topology jar中包含与Maven的依赖关系?
我正在尝试将Storm拓扑部署到本地独立群集。我将包括我的项目的链接,这样你就可以看到我的代码 我已经在本地模式下运行了一个,我必须将其连接到一个停靠的集群(基于) 但是,当我试图让它运行时,会出现以下错误:Java 如何在集群部署的Storm topology jar中包含与Maven的依赖关系?,java,docker,maven,jar,apache-storm,Java,Docker,Maven,Jar,Apache Storm,我正在尝试将Storm拓扑部署到本地独立群集。我将包括我的项目的链接,这样你就可以看到我的代码 我已经在本地模式下运行了一个,我必须将其连接到一个停靠的集群(基于) 但是,当我试图让它运行时,会出现以下错误: Exception in thread "main" java.lang.NoClassDefFoundError: backtype/storm/topology/IRichSpout 在构建topology.jar时,我似乎只需要将storm core作为依赖项
Exception in thread "main" java.lang.NoClassDefFoundError: backtype/storm/topology/IRichSpout
在构建topology.jar
时,我似乎只需要将storm core
作为依赖项包含在我的Maven项目中
所以我使用文件(我没有使用Eclipse或任何IDE,我只是从命令行运行Maven)来包含storm core
作为依赖项,并包含Maven汇编插件
,以将jar打包为依赖项。但是现在,当我尝试运行集群时,我得到一个错误,它说:
...
java.io.IOException: Found multiple defaults.yaml resources. You're probably bundling the Storm jars with your topology jar
...
那么,作为捆绑依赖项,我应该包括什么呢?我需要在我的pom.xml
中添加/删除哪些代码行才能使其工作?您应该在pom.xml文件的storm依赖项中添加“提供的”范围。我已经让它工作了
问题是Docker集群上的Storm依赖项被归档在org.apache.Storm
下,而本地构建使用的是backtype.Storm
。toorg.apache.storm
似乎已经成功了。当我这样做时,我得到了NoClassDefFoundError。您可以看到pom.xml
文件,似乎maven找不到源文件。能否将源目录标记添加到pom文件的构建部分@彼得雷斯科塔,我已经修好了,看看我的答案。哦,好的!好的:D