storm源码编译

来源:互联网 发布:个人商城源码 编辑:程序博客网 时间:2024/05/20 19:19

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 了。

最后

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

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

原创粉丝点击