nutch v1.9源碼分析(2)——nutch bin和src目錄解析及編譯

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包移動到公共位置,在上述位置建立符號鏈接即可)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章