`
deepfuture
  • 浏览: 4397746 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:80022
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:69995
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:103284
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:285611
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:15001
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:67492
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:32099
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:45965
社区版块
存档分类
最新评论

nutch-build.xm解读

阅读更多

nutch-build.xm解读

搜索引擎与人工智能 2009-05-09 19:16 阅读4评论0
字号:

花了很多时间来读这个build.xml,并不是这个包不好读,相反可读性非常强,这就是xml的好处.自己花了很多的时间

去熟悉ant!从Ant的task,type,nested element等一点一点读起.这样整个nutch的配置结构,我就了解的更加清楚了.

解下来的任务就是继续熟悉一下Javacc这个软件,在读一下它的api文档,下来的工作就是修改nutch了.

将build.xml的内容粘于此处.

<?xml version='1.0' encoding='GBK'?>
<!--如果出现汉字,请使用GBK编码-->

<project name="Nutch" default="compile">

<!--修改意见-->
<!--可以写一个deploy模块,把war文件拷贝到tomcat/webapps下面去,这部分文中没有涉及-->
<!-- Load all the default properties, and any the user wants -->
<!-- to contribute (without having to type -D or edit this file -->
<!--没有找到build.properties??-->
<!--properry为task-->
<property file="${user.home}/build.properties" />
<property file="${basedir}/build.properties" />
<property file="${basedir}/default.properties" />

<!-- the normal classpath -->
<!--build.classes下含有lib.dir下的所有的jar文件-->
<!--path-like structure,定义classpath-->
<path id="classpath">
<pathelement location="${build.classes}"/>
<!--fileset为type-->
<fileset dir="${lib.dir}">
<include name="*.jar" />
</fileset>
</path>

<!-- the unit test classpath -->
<!--dirname为Task-->
<dirname property="plugins.classpath.dir" file="${build.plugins}"/>
<path id="test.classpath">
<pathelement location="${test.build.classes}" />
<pathelement location="${conf.dir}"/>
<pathelement location="${test.src.dir}"/>
<pathelement location="${plugins.classpath.dir}"/>
<!--使用前面定义的classpath-->
<path refid="classpath"/>
</path>

<!-- xmlcatalog definition for xslt task -->
<!--使用xmlcatalog type定义docDTDs-->
<xmlcatalog id="docDTDs">
<dtd publicId="-//W3C//DTD XHTML 1.0 Transitional//EN"
location="${xmlcatalog.dir}/xhtml1-transitional.dtd"/>
</xmlcatalog>

<!-- ====================================================== -->
<!-- Stuff needed by all targets -->
<!-- ====================================================== -->
<target name="init">
<!--mkdir为task,创建用于build和test的目录-->
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.classes}"/>

<mkdir dir="${test.build.dir}"/>
<mkdir dir="${test.build.classes}"/>

<!--将conf.dir中对应格式的文件修改时间设为datetime-->
<touch datetime="01/25/1971 2:00 pm">
<fileset dir="${conf.dir}" includes="**/*.template"/>
</touch>

<copy todir="${conf.dir}" verbose="true">
<fileset dir="${conf.dir}" includes="**/*.template"/>
<!--mapper为type,将*.template转为*-->
<mapper type="glob" from="*.template" to="*"/>
</copy>


</target>

<!-- ====================================================== -->
<!-- Compile the Java files -->
<!-- ====================================================== -->
<target name="compile" depends="compile-core, compile-plugins, jar"/>

<target name="compile-core" depends="init">
<!--将生成的class文件存入build/classes-->
<javac
encoding="${build.encoding}"
srcdir="${src.dir}"
includes="org/apache/nutch/**/*.java"
destdir="${build.classes}"
debug="${debug}"
optimize="${optimize}"
deprecation="${deprecation}">
<!--使用已经定义的classpath-->
<classpath refid="classpath"/>
</javac>
</target>

<target name="compile-plugins">
<!--执行src/plugin下面的build.xml,并且执行其中的deploytarget,不继承property-->
<ant dir="src/plugin" target="deploy" inheritAll="false"/>
</target>

<target name="generate-src" depends="init">
<!--使用javacc命令-->
<javacc target="${src.dir}/org/apache/nutch/quality/dynamic/PageDescription.jj"
javacchome="${javacc.home}">
</javacc>
<!--对NutchAnalysis.jj运行javacc,我们修改分词需要修改此接口-->
<javacc target="${src.dir}/org/apache/nutch/analysis/NutchAnalysis.jj"
javacchome="${javacc.home}">
</javacc>
<!--CR即为carriage(回车),LF即为Line Feed(换行)即将src.dir下的匹配文件eof以lf代替-->
<fixcrlf srcdir="${src.dir}" eol="lf" includes="**/*.java"/>

</target>

<target name="dynamic" depends="generate-src, compile">
</target>


<!-- ================================================================== -->
<!-- Make nutch.jar -->
<!-- ================================================================== -->
<!-- -->
<!-- ================================================================== -->
<target name="jar" depends="compile-core">
<!--将conf目录下的nutch-default.xml和nutch-site.xml拷入build文件目下-->
<copy file="${conf.dir}/nutch-default.xml"
todir="${build.classes}"/>
<copy file="${conf.dir}/nutch-site.xml"
todir="${build.classes}"/>
<!--将build/classes下的文件打包成jar-->
<jar
jarfile="${build.dir}/${final.name}.jar"
basedir="${build.classes}"
/>
<!--将生成的nutch-0.7.jar拷贝到根目录下命名为nutch.jar-->
<copy file="${build.dir}/${final.name}.jar" tofile="${basedir}/${name}.jar" />
</target>

<!-- ================================================================== -->
<!-- Make nutch.war -->
<!-- ================================================================== -->
<!-- -->
<!-- ================================================================== -->
<target name="war" depends="compile,generate-docs">
<!--war是一个task,将里面包含的所有的东西打包成一个war文件,如果需要修改前台的界面包括
nutch的logo等等,都要提前修改其中的一些图片,界面.最后打好包放到tomcat中-->
<war destfile="${build.dir}/${final.name}.war"
webxml="${web.src.dir}/web.xml">
<fileset dir="${web.src.dir}/jsp"/>
<zipfileset dir="${docs.src}" includes="include/*.html"/>
<zipfileset dir="${build.docs}" includes="*/include/*.html"/>
<fileset dir="${docs.dir}"/>
<lib dir="${lib.dir}">
<include name="lucene*.jar"/>
<include name="taglibs-*.jar"/>
<include name="dom4j-*.jar"/>
<include name="xerces-*.jar"/>
</lib>
<lib dir="${build.dir}">
<include name="${final.name}.jar"/>
</lib>
<classes dir="${conf.dir}" excludes="**/*.template"/>
<classes dir="${web.src.dir}/locale"/>
<zipfileset prefix="WEB-INF/classes/plugins" dir="${build.plugins}"/>
<webinf dir="${lib.dir}">
<include name="taglibs-*.tld"/>
</webinf>
</war>
</target>


<!-- ================================================================== -->
<!-- Compile test code -->
<!-- ================================================================== -->
<target name="compile-core-test" depends="compile-core">
<javac
encoding="${build.encoding}"
srcdir="${test.src.dir}"
includes="org/apache/nutch/**/*.java"
destdir="${test.build.classes}"
debug="${debug}"
deprecation="${deprecation}">
<!--使用先前定义的test.classpath-->
<classpath refid="test.classpath"/>
</javac>
</target>

<!-- ================================================================== -->
<!-- Run unit tests -->
<!-- ================================================================== -->
<target name="test" depends="test-core, test-plugins"/>

<target name="test-core" depends="compile, compile-core-test">

<delete dir="${test.build.data}"/>
<mkdir dir="${test.build.data}"/>
<!--使用nutch-site.xml-->
<copy file="${test.src.dir}/nutch-site.xml"
todir="${test.build.classes}"/>
<!--junit为一个task,支持nested element,譬如sysproperty,formatter,batchtest-->
<junit printsummary="yes" haltonfailure="no" fork="yes" dir="${basedir}"
errorProperty="tests.failed" failureProperty="tests.failed">
<sysproperty key="test.build.data" value="${test.build.data}"/>
<sysproperty key="test.src.dir" value="${test.src.dir}"/>
<classpath refid="test.classpath"/>
<formatter type="plain" />
<batchtest todir="${test.build.dir}" unless="testcase">
<fileset dir="${test.src.dir}"
includes="**/Test*.java" excludes="**/${test.exclude}.java" />
</batchtest>
<batchtest todir="${test.build.dir}" if="testcase">
<fileset dir="${test.src.dir}" includes="**/${testcase}.java"/>
</batchtest>
</junit>
<!--fail为task-->
<fail if="tests.failed">Tests failed!</fail>

</target>

<target name="test-plugins" depends="compile">
<ant dir="src/plugin" target="test" inheritAll="false"/>
</target>

<target name="nightly" depends="test, tar">
</target>

<!-- ================================================================== -->
<!-- Documentation -->
<!-- ================================================================== -->
<target name="javadoc" depends="compile">
<mkdir dir="${build.javadoc}"/>
<!--javadoc为task,支持nested element,譬如packageset,link,group-->
<javadoc
overview="${src.dir}/overview.html"
destdir="${build.javadoc}"
author="true"
version="true"
use="true"
windowtitle="${Name} ${version} API"
doctitle="${Name} ${version} API"
bottom="Copyright &amp;copy; ${year} The Apache Software Foundation"
>
<packageset dir="${src.dir}"/>
<packageset dir="${plugins.dir}/protocol-file/src/java"/>
<packageset dir="${plugins.dir}/protocol-ftp/src/java"/>
<packageset dir="${plugins.dir}/protocol-http/src/java"/>
<packageset dir="${plugins.dir}/protocol-httpclient/src/java"/>
<packageset dir="${plugins.dir}/parse-html/src/java"/>
<packageset dir="${plugins.dir}/parse-js/src/java"/>
<packageset dir="${plugins.dir}/parse-text/src/java"/>
<packageset dir="${plugins.dir}/parse-pdf/src/java"/>
<!--<packageset dir="${plugins.dir}/parse-rtf/src/java"/> plugin excluded from build due to licensing issues-->
<!--<packageset dir="${plugins.dir}/parse-mp3/src/java"/> plugin excluded from build due to licensing issues-->
<packageset dir="${plugins.dir}/parse-msword/src/java"/>
<packageset dir="${plugins.dir}/index-basic/src/java"/>
<packageset dir="${plugins.dir}/index-more/src/java"/>
<packageset dir="${plugins.dir}/query-more/src/java"/>
<packageset dir="${plugins.dir}/urlfilter-regex/src/java"/>
<packageset dir="${plugins.dir}/urlfilter-prefix/src/java"/>
<packageset dir="${plugins.dir}/creativecommons/src/java"/>
<packageset dir="${plugins.dir}/languageidentifier/src/java"/>
<packageset dir="${plugins.dir}/clustering-carrot2/src/java"/>
<packageset dir="${plugins.dir}/ontology/src/java"/>
<link href="${javadoc.link.java}"/>
<link href="${javadoc.link.lucene}"/>
<classpath refid="classpath"/>
<classpath>
<fileset dir="${plugins.dir}" >
<include name="**/*.jar"/>
</fileset>
</classpath>
<group title="Core" packages="org.apache.nutch.*"/>
<group title="Plugins" packages="${plugins.packages}"/>
</javadoc>
</target>

<target name="default-doc">
<!--style即xslt命令,使用xsl文件解析xml-->
<style basedir="${conf.dir}" destdir="${docs.dir}"
includes="nutch-default.xml" style="conf/nutch-conf.xsl"/>
</target>

<target name="generate-locale" if="doc.locale">
<echo message="Generating docs for locale=${doc.locale}"/>

<mkdir dir="${build.docs}/${doc.locale}/include"/>
<xslt in="${docs.src}/include/${doc.locale}/header.xml"
out="${build.docs}/${doc.locale}/include/header.html"
style="${docs.src}/style/nutch-header.xsl">
<xmlcatalog refid="docDTDs"/>
</xslt>

<dependset>
<srcfileset dir="${docs.src}/include/${doc.locale}" includes="*.xml"/>
<srcfileset dir="${docs.src}/style" includes="*.xsl"/>
<targetfileset dir="${docs.dir}/${doc.locale}" includes="*.html"/>
</dependset>

<copy file="${docs.src}/style/nutch-page.xsl"
todir="${build.docs}/${doc.locale}"
preservelastmodified="true"/>

<xslt basedir="${docs.src}/pages/${doc.locale}"
destdir="${docs.dir}/${doc.locale}"
includes="*.xml"
style="${build.docs}/${doc.locale}/nutch-page.xsl">
<xmlcatalog refid="docDTDs"/>
</xslt>
</target>


<target name="generate-docs" depends="init">
<dependset>
<srcfileset dir="${docs.src}/include" includes="*.html"/>
<targetfileset dir="${docs.dir}" includes="**/*.html"/>
</dependset>

<mkdir dir="${build.docs}/include"/>
<copy todir="${build.docs}/include">
<fileset dir="${docs.src}/include"/>
</copy>
<!--antcall为task,调用generate-locale,并将相应的参数传递过去-->
<antcall target="generate-locale">
<param name="doc.locale" value="ca"/>
</antcall>

<antcall target="generate-locale">
<param name="doc.locale" value="de"/>
</antcall>

<antcall target="generate-locale">
<param name="doc.locale" value="en"/>
</antcall>

<antcall target="generate-locale">
<param name="doc.locale" value="es"/>
</antcall>

<antcall target="generate-locale">
<param name="doc.locale" value="fi"/>
</antcall>

<antcall target="generate-locale">
<param name="doc.locale" value="fr"/>
</antcall>

<antcall target="generate-locale">
<param name="doc.locale" value="hu"/>
</antcall>

<antcall target="generate-locale">
<param name="doc.locale" value="jp"/>
</antcall>

<antcall target="generate-locale">
<param name="doc.locale" value="ms"/>
</antcall>

<antcall target="generate-locale">
<param name="doc.locale" value="nl"/>
</antcall>

<antcall target="generate-locale">
<param name="doc.locale" value="pl"/>
</antcall>

<antcall target="generate-locale">
<param name="doc.locale" value="pt"/>
</antcall>

<antcall target="generate-locale">
<param name="doc.locale" value="sv"/>
</antcall>

<antcall target="generate-locale">
<param name="doc.locale" value="th"/>
</antcall>

<antcall target="generate-locale">
<param name="doc.locale" value="zh"/>
</antcall>

<fixcrlf srcdir="${docs.dir}" eol="lf" encoding="utf-8"
includes="**/*.html"/>

</target>

<!-- ================================================================== -->
<!-- D I S T R I B U T I O N -->
<!-- ================================================================== -->
<!-- -->
<!-- ================================================================== -->
<!--将所有的东西,包括.jar,.war等文件都拷贝到dist目录中-->
<target name="package" depends="jar, war, javadoc">
<mkdir dir="${dist.dir}"/>
<mkdir dir="${dist.dir}/lib"/>
<mkdir dir="${dist.dir}/bin"/>
<mkdir dir="${dist.dir}/docs"/>
<mkdir dir="${dist.dir}/docs/api"/>
<mkdir dir="${dist.dir}/plugins"/>

<copy todir="${dist.dir}/lib" includeEmptyDirs="false">
<fileset dir="lib"/>
</copy>

<copy todir="${dist.dir}/plugins">
<fileset dir="${build.plugins}"/>
</copy>

<copy file="${build.dir}/${final.name}.jar" todir="${dist.dir}"/>

<copy file="${build.dir}/${final.name}.war" todir="${dist.dir}"/>

<copy todir="${dist.dir}/bin">
<fileset dir="bin"/>
</copy>

<copy todir="${dist.dir}/conf">
<fileset dir="${conf.dir}" excludes="**/*.template"/>
</copy>

<chmod perm="ugo+x" type="file">
<fileset dir="${dist.dir}/bin"/>
</chmod>

<copy todir="${dist.dir}/docs">
<fileset dir="${docs.dir}"/>
</copy>

<copy todir="${dist.dir}/docs/api">
<fileset dir="${build.javadoc}"/>
</copy>

<copy todir="${dist.dir}">
<fileset dir=".">
<include name="*.txt" />
</fileset>
</copy>

<copy todir="${dist.dir}/src" includeEmptyDirs="false">
<fileset dir="src"/>
</copy>

<copy todir="${dist.dir}/" file="build.xml"/>
<copy todir="${dist.dir}/" file="default.properties"/>

</target>

<!-- ================================================================== -->
<!-- Make release tarball -->
<!-- ================================================================== -->
<!--打包成压缩文件-->
<target name="tar" depends="package">
<tar compression="gzip" longfile="gnu"
destfile="${build.dir}/${final.name}.tar.gz">
<tarfileset dir="${build.dir}" mode="664">
<exclude name="${final.name}/bin/*" />
<include name="${final.name}/**" />
</tarfileset>
<tarfileset dir="${build.dir}" mode="755">
<include name="${final.name}/bin/*" />
</tarfileset>
</tar>
</target>

<!-- ================================================================== -->
<!-- Clean. Delete the build files, and their directories -->
<!-- ================================================================== -->
<target name="clean">
<delete dir="${build.dir}"/>
<delete failonerror="true" file="${name}.jar" />
</target>

</project>

分享到:
评论

相关推荐

    apache-nutch-2.3.1-src.tar.gz

    5. **配置文件**:如 `conf/nutch-default.xml` 和 `conf/nutch-site.xml`,分别包含 Nutch 的默认配置和用户自定义配置。 6. **抓取策略**:Nutch 支持基于链接的抓取策略,如 PR(PageRank)和 TF-IDF(Term ...

    nutch配置nutch-default.xml

    nutch配置nutch-default.xml

    apache-nutch-1.7-src.tar.gz

    在“apache-nutch-1.7-src.tar.gz”这个压缩包中,你将获得Nutch 1.7的源代码,这使得开发者可以深入了解其工作原理,并对其进行定制和扩展。解压后的文件夹“apache-nutch-1.7”包含了所有必要的组件和配置文件。 ...

    apache-nutch-1.4-bin.tar.gz

    在这个"apache-nutch-1.4-bin.tar.gz"压缩包中,包含了运行 Nutch 的所有必要组件和配置文件,适合初学者和开发者快速部署和实验。 **Nutch 的核心组成部分:** 1. **爬虫(Spider)**:Nutch 的爬虫负责在网络中...

    apache-nutch-1.6-bin.tar.gz最新版

    nutch不用安装,是个应用程序,下载后为nutch-1.6.tar.gz,双击桌面上的cygwin快捷方式;执行以下命令: $ cd D:/Downloads/Soft $ tar zxvf nutch-1.0.tar.gz 在e盘下面出现nutch-0.9文件夹说明解压成功了.然后环境...

    apache-nutch-1.3-src.tar.gz_nutch_nutch-1.3.tar.gz

    这个源码包 "apache-nutch-1.3-src.tar.gz" 和 "nutch-1.3.tar.gz" 包含了 Nutch 1.3 的源代码和编译后的二进制文件,对于开发者和研究者来说是非常有价值的资源。 **Nutch 概述** Nutch 是基于 Java 开发的,遵循 ...

    nutch-1.2.war

    nutch官方简单案例,请版本是nutch-1.2.war

    Nutch_的配置文件

    - 接着,`NutchConfiguration`会调用`addNutchResources(conf)`方法,向`Configuration`对象添加Nutch自己的配置资源,如`Nutch-default.xml`和用户定义的`Nutch-site.xml`,这里的`Nutch-site.xml`会覆盖`Nutch-...

    apache-nutch-1.6-src.tar.gz

    - **XML配置与XML Schema**:了解如何解读和修改Nutch的配置文件,理解`nutch-site.xml`的结构和作用。 - **Java编程**:源码阅读和开发需要基本的Java编程技能,特别是对多线程和网络编程的理解。 - **Ant构建工具*...

    apache-nutch-1.5.1-bin.tar.gz

    Nutch是一款刚刚诞生的完整的开源搜索引擎系统,可以结合数据库进行索引,能快速构建所需系统。Nutch 是基于Lucene的,Lucene为 Nutch 提供了文本索引和搜索的API,所以它使用Lucene作为索引和检索的模块。Nutch的...

    apach-nutch-1.9-bin.tar.gz

    4. **配置与部署**:解压 "apache-nutch-1.9" 文件后,需要根据你的环境配置`conf/nutch-site.xml`文件,设置包括抓取间隔、并发度、存储路径等参数。同时,可能还需要配置`conf/regex-urlfilter.txt`和`conf/...

    apache-nutch-1.16.rar 已编译好的版本,可以直接导入eclipse、idea

    1. **导入项目**:首先,你需要在Eclipse或IDEA中创建一个新的Java项目,然后将解压后的`apache-nutch-1.16`目录作为项目的根目录导入。在IDE中,这通常通过"Import Existing Project"或"Open Project"功能完成。 2...

    apache-nutch-1.4-bin.tar.gz.part2

    apache-nutch-1.4-bin.tar.gz.part2

    rtf-parse.jar、jid3lib-0.5.4.jar

    在编译`Nutch`项目时,可能需要依赖各种`jar`库,包括`rtf-parse.jar`和`jid3lib-0.5.4.jar`,因为`Nutch`可能需要处理包含RTF格式的网页或者抓取的MP3等音频文件。 `rtf-parse.jar`和`jid3lib-0.5.4.jar`在`Nutch`...

    apache-nutch-1.4-bin.tar.gz.part1

    apache-nutch-1.4-bin.tar.gz.part1

    nutch-1.2.part06

    nutch Nutch是一个由Java实现的,刚刚诞生开放源代码(open-source)的web搜索引擎。 尽管Web搜索是漫游Internet的基本要求, 但是现有web搜索引擎的数目却在下降。 并且这很有可能进一步演变成为一个公司垄断了几乎...

    nutch-1.0-dev.jar

    nutch-1.0-dev.jar nutch devlope

    nucth-1.2.part01 (该资源有10个包,共144M 完整nutch包 目录如下)

    Nutch是一个由Java实现的,...-rwx------+ 1 nutch-1.2.jar -rwx------+ 1 nutch-1.2.job -rwx------+ 1 nutch-1.2.war drwx------+ 61 plugins drwx------+ 10 src -rwx------+ 1 url.txt drwx------+ 8 webapps

    apache-nutch-1.4-bin.part2

    apache-nutch-1.4-bin.part2

Global site tag (gtag.js) - Google Analytics