如何在classpath上添加Storm jar?

时间:2014-05-26 00:06:15

标签: maven apache-storm

我正在尝试设置一个用于开发的Storm项目 - 遵循以下说明: http://storm.incubator.apache.org/documentation/Creating-a-new-Storm-project.html

我试图编译并运行拓扑(来自C:\ Users \ Simon Reeves \ incubator-storm \ examples \ storm-starter) 如下: $ mvn compile exec:java“-Dstorm.topology = storm.starter.clj.word_count”

请告诉我以下内容:

1)需要将哪些Storm jar添加到类路径中? (风暴下载有很多罐子)

2)应该将jar文件复制到哪个目录?如何确定类路径?

3)需要添加到pom.xml文件中的内容 - 需要添加clojars.org存储库和Storm依赖项(除了2)。

2 个答案:

答案 0 :(得分:0)

我想storm-starter pom example足够清楚了。

开发拓扑(本地群集模式)时,<dependencies>中的每个jar都在类路径中。 Maven将自动下载它们。

当拓扑需要打包为jar并提交给storm cluster时,运行mvm package。所有没有<scope>provided</scope><scope>test</scope>的jar都将位于独立包中。在群集上运行时,它们将位于类路径中。

此外,storm-release/libs/中的任何jar都将添加到类路径中。请注意,这些罐子不应与独立包装中的您的罐子冲突。

  1. 将您需要的每个罐子放在零件中。请注意,storm-core jar应与<scope>provided</scope>一致。 (因为在任何风暴释放中都有风暴核心罐。)
  2. Maven会照顾他们。 (下载,管理依赖关系等)只需将它们添加到<dependencies>部分。
  3. 如果需要clojars.org上的任何jar,请在pom.xml中添加以下部分:
  4. <repository>
      <id>clojars.org</id>
      <url>http://clojars.org/repo</url>
    </repository>
    

答案 1 :(得分:0)

半自己的答案很好,但我认为可能会比你现在想要完成的事情稍微提前一点。

我也是这一切的新手,所以有些步骤可能是不必要的,但这就是我的工作方式:

如果您试图让基本示例在本地模式下工作,使用mvn转到incubator-storm项目的根目录(https://github.com/apache/incubator-storm

然后运行:

  

mvn验证

     

mvn clean install

如果您仍有问题,请尝试rm -rf ~/.m2/,然后重新启动此过程。

完成后,您可以转到初学者项目:cd examples/storm-starter

  

mvn验证

     

mvn编译exec:java&#34; -Dstorm.topology = storm.starter.clj.word_count&#34;

编辑:我不需要修改任何东西以使storm-starter项目在本地模式下工作,或者手动将任何lib添加到项目中。确保你也安装了所有的依赖项,我安装了旧版本的ruby似乎阻止它通过验证目标。