Maven编译Flume源码

Flume是一个分布式日志收集系统系统,具体的后面的文章会详细介绍,本篇只讲述如果编译,打包,导入eclipse阅读源码。

编译过程中遇到些问题,网上找了好多资料,都无法解决。记录下来,希望能对需要的人有所帮助。

1,通过git下载源码,最新版本是1.7.0,我编译的是1.7.0的快照版本
地址:https://github.com/apache/flume.git
Maven编译Flume源码_第1张图片
2,mvn clean eclipse:clean
3,mvn install eclipse:eclipse -Dmaven.test.skip=true -Dtar
有以下报错,原因都是无法连接到maven.twttr.com,可能是被墙了。导致无法下载jar和pom文件
这里写图片描述

[ERROR] Failed to execute goal on project flume-ng-morphline-solr-sink: Could not resolve dependencies for project org.apache.flume.flume-ng-sinks:flume-ng-morphline-solr-sink:jar:1.7.0-SNAPSHOT: Failed to collect dependencies at
org.kitesdk:kite-morphlines-all:pom:1.0.0 -> org.kitesdk:kite-morphlines-useragent:jar:1.0.0 -> ua_parser:ua-parser:jar:1.3.0: Failed to read artifact descriptor for ua_parser:ua-parser:jar:1.3.0: Could not transfer artifact ua_pa
rser:ua-parser:pom:1.3.0 from/to maven-twttr (http://maven.twttr.com): Connect to maven.twttr.com:80 [maven.twttr.com/46.82.174.68] failed: Connection timed out: connect -> [Help 1]

我没有试过能不能链接到maven.twttr.com。
解决办法是在根pom文件的标签添加下面的maven库地址。

<repository>
      <id>maven.tempo-db.com</id>
      <url>http://maven.oschina.net/service/local/repositories/sonatype-public-grid/content/</url>
</repository>

maven.oschina.net是开源中国 “中国源” 项目的一个子系统,在不断进行完善当中,很靠谱国内maven库。有了它,妈妈再也不用担心你下不了依赖包了。嘿嘿!!!

很多开源项目的jar和POM在http://search.maven.org无法找到,大家可以试试在http://maven.oschina.net

OK,继续编译,又出现如下错误:
这里写图片描述
注释:flume-ng-channels\flume-kafka-channel\的

<!-- <dependency> <groupId>org.apache.flume.flume-ng-sinks</groupId> <artifactId>flume-ng-kafka-sink</artifactId> <version>${project.version}</version> <classifier>tests</classifier> <scope>test</scope> </dependency> -->

注释:\flume-ng-sinks\flume-ng-hbase-sink\

<!-- <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase</artifactId> <classifier>tests</classifier> <scope>test</scope> </dependency> -->

Continue!
Maven编译Flume源码_第2张图片
编译成功,导入到eclipse。尽情的阅读和修改源码吧。^-^

最后需要注意flume的flume-hdfs-sink分两块:

<id>hadoop-1.0</id><id>hadoop-2</id>

如果用的是hadoop2.X的,打包的时候需要指定,命令: mvn install eclipse:eclipse -Dmaven.test.skip=true -Phadoop-2 -Dtar

生成:
apache-flume-1.7.0-SNAPSHOT-bin.tar.gz和apache-flume-1.7.0-SNAPSHOT-src.tar.gz

关于flume后续将会持续更新。。。

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>

你可能感兴趣的:(maven)