nutch v1.9源码分析(2)——nutch bin和src目录解析及编译

来源:互联网 发布:淘宝怎么搜爱弹幕账号 编辑:程序博客网 时间:2024/06/09 18:12

1      nutch bin目录结构

图1 nutch release包的目录结构

1)        bin目录:主要含有2个可执行文件crawl和nutch脚本,其中crawl脚本只是nutch脚本的wrapper,提供了all-in-one(一站式)形式的调用方式,通过限定相对于种子url的相对深度的方式来结束爬取循环,本质上是逐个调用nutch脚本中的各个tool。

2)        conf:含有nutch所有的配置文件,比较常用的是nutch-default.xml,nutch-site.xml和parse-plugins.xml文件。

3)        docs:API doc文档。

4)        lib:nutch运行时依赖包,不包含plugins需要的运行时依赖。

5)        plugins:插件目录,nutch内置47种插件,其中nutch-extensionpoints插件,是nutch加插件机制运行机制的核心。

 

2      nutch源码目录结构

图2 nutch src包的目录结构

1)        conf:同release的conf。

2)        ivy:使用ivy管理nutch的依赖,ivy相关的配置文件位置。

3)        lib:同release的lib。

4)        src/bin:同release的bin。

5)        src/java:nutch除了plugins以外的源码所在的位置,按照package组织。

6)        src/test:nutch单元测试代码的位置,按package组织。

7)        src/testresources:nutch单元测试资源文件位置。

8)        plugins:插件源码位置。


3      nutch的编译

nutch采用ant编译,使用lvy管理项目依赖。执行anteclipse生成eclipse所需要的.classpath和.project文件;执行ant deploy会生成maven项目,会在nutch的根目录下生成pom文件。这样就可以直接使用IDE import“existing project”或者是“existing maven project”(如果是采用maven编译的话,则需要修改maven-compiler-plugin的source和target属性为1.6版本以上,以支持Annotation@Override,避免编译错误)。注意:nutch的plugin项目并没有maven化,故也没有作为nutch maven project的module。

3.1  FAQ

编译阶段可能会出现的问题如下:

1)        Unsupported Java version: 1.6.x_xx. Javadoc requires Java version 7u25or greater.,由于frame injection相关的问题,nutch的编译脚本在调用javadoc命令生成项目的API文档之前,会检查系统JDK的版本,如果是JDK7u25之前的版本会终止build过程。升级成该版本以上的JDK即可。或者注释掉<fail>段的脚本(该方法本人未验证)。

2)        failed to create task or typeantlib:org.apache.maven.artifact.ant:mvn。该问题是由于ant在运行时找不到mavenant task相关的jar包造成的,可以到http://maven.apache.org/ant-tasks/download.cgi下载最新的maven-ant-tasks-x.x.x.jar,然后放到$ANT_HOME/lib目录下即可(为了升级方便,linux下也可以将jar包移动到公共位置,在上述位置建立符号链接即可)

0 0
原创粉丝点击