storm源码编译

storm 源码下载到本地有一段时间了,今天事情不多就将源码编译了一遍。期间也参考了一些网上的文章,很多都转来转去,或多或少存在一些问题,或者没有将问题讲透彻,在此把自己遇到的问题和解决的经验记录下来,希望能帮到需要的朋友。

感谢

  1. Clojure Clojure 提供了 http://clojars.org/repo/ 的国内镜像,造福了国内广大的 Clojure 的学习者。另外论坛气氛很活跃,很值对 Clojure 感兴趣的同学加入。
  2. github,开源的圣地,知识的宝库,你值得拥有。

准备工作

  1. storm-1.1.0 源码
  2. maven 3.3.1
  3. JDK 1.8.0_91

过程中遇到的问题

clojars 库不能访问

http://clojars.org/repo/ 这个库不能访问,导致很多依赖的包不能下载,幸好找到了 Clojure China 发布的镜像。将镜像内容添加到 maven 的 setting.xml 中。

        <!-- 修改镜像地址 -->
172      <mirror>
173         <id>clojars</id>
174         <mirrorOf>clojars</mirrorOf>
175         <url>http://clojars.org/repo/</url>
176      </mirror>
177      -->
178      <mirror>
179         <id>clojars-daocloud</id>
180         <mirrorOf>clojars</mirrorOf>
181         <url>http://lbp0200-maven.daoapp.io/repo/</url>
182      </mirror>

hyperic-sigar-1.6.4.zip 不能下载

编译 storm-metrics 的时候会用到 hyperic-sigar-1.6.4.zip,由于 pom.xml 中使用 google code 的源,导致不能下载。因此需要修改pom.xml 配置内容,我使用 sigar-1.6.4.zip 在 github 发布版作为替代。pom.xml 文件有两处需要修改。

 <!-- 修改 sigar 下载地址 -->
 <properties>
    <!-- settings for downloading the sigar native binary complete archive, which is not available in Maven central-->
    <sigar.version>1.6.4</sigar.version>
    <sigar.download.url>https://github.com/hyperic/sigar/archive/sigar-${sigar.version}.zip</sigar.download.url>
    <!-- sigar.download.url>https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/magelan/hyperic-sigar-${sigar.version}.zip</sigar.download.url -->
    <sigar.SHA1>8f79d4039ca3ec6c88039d5897a80a268213e6b7</sigar.SHA1>
    <!-- this will download the sigar ZIP to the local maven repository next to the sigar dependencies,
         so we only download it once -->
    <sigar.download.path>${settings.localRepository}/org/fusesource/sigar/${sigar.version}</sigar.download.path>
  </properties>
  <!-- ①取消下载文件的 sha1 验证;②修改解压路径 -->
  <tasks>
    <echo message="Downloading sigar native binaries..." />
    <get src="${sigar.download.url}" dest="${sigar.download.path}/" skipExisting="true" />
    <!-- checksum file="${sigar.download.path}/sigar-${sigar.version}.zip" algorithm="SHA1" property="${sigar.SHA1}" verifyProperty="validChecksum" />
    <fail message="Checksum validation failed for hyperic-sigar-${sigar.version}.zip">
        <condition>
        <isfalse value="${validChecksum}" />
            </condition>
    </fail -->
    <unzip src="${sigar.download.path}/sigar-${sigar.version}.zip" dest="${project.build.directory}/classes/resources">
     <patternset>
        <include name="**/lib/libsigar-*" />
        <include name="**/lib/sigar-*" />
        </patternset>
        <mapper type="flatten" />
    </unzip>
</tasks>

到此,所有问题都已解决,在 storm 源码下执行:

mvn clean install -DskipTests

直到最后出现:

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] Storm ............................................. SUCCESS [1.890s]
......
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3:14.334s
[INFO] Finished at: Sun Jul 09 19:17:21 CST 2017
[INFO] Final Memory: 262M/791M
[INFO] ------------------------------------------------------------------------

到此, storm 编译完成。接下来就是编写自己的 topology 了。

最后

纸上得来终觉浅,绝知此事要躬行。

学无止境,特别是计算机技术。不要觉得自己能记住或者已经学会,时过境迁,上手一试便知真假。这也是我现在做完便记下的原因。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值