在Windows平台上配置Heritrix的Eclipse开发环境

2008-03-10 – 3:27 am

最近由于对搜索引擎有兴趣,买了一本《开发自己的搜索引擎-Lucene 2.0 + Heritrix》。看到其中介绍的强大的Heritrix,就决定开始研究一下。遍历了网上,发现到处有求助如何在Eclipse环境下配置Heritrix的帖子,但是没有解答。决心自己花一点时间来解决这个问题。

到Heritrix的网站看了看,发现最新发布的Heritrix是1.12.1版本,发布日期是2007年5月6日。但是到了Sourceforge上面关于Heritrix的工程主页,下载界面里面最新的版本已经是Heritrix2,版本2.0.0了。而且发布日期是2008年2月20日,版本状态也不是RC了,应该是稳定版本。但是想想2.0是新出来的,网上可以求助的资源总没有1.X版本多,还是用1.12吧。

下载的Heritrix是一个Zip包,heritrix-1.12.1.zip。我把它解压到的我的E:\Heritrix目录。下载的源文件是heritrix-1.12.1-src.zip ,解压后有Src、lib和Testdata目录和一些文件,我把它们都拷到了E:\Heritrix下面,覆盖了原来的Lib目录。

在Eclipse中,我新建了一个Java Project,叫做Heritrix1.12。在建立时选择从已经存在的源文件建立工程(Create Project From Exsiting Source),目录就选择E:\Heritrix\Src目录。然后选择Next,在下一个页面中的Liberaries的标签页,选择Add External JARs,将E:\Heritrix\Lib下面的所有Jar文件都加上去(我也不知道它们都是干什么的,加上没坏处,以后再看了)。

点“finish”建立工程。然后选择Run->Run As->Java Application。可执行的Main选择org.archive.crawler.heritrix。在Run Dialog中设置运行参数–admin=admin:你的密码 -p 8090。前面一个参数需要在jmxremote.password文件中设置。这个文件的模板在conf目录下,名字是jmxremote.password.template。把它拷贝到E:\Heritrix改名为jmxremote.password。用文本编辑器打开,可以在最后看到

monitorRole @PASSWORD@
controlRole @PASSWORD@

这里是设置你的密码,将其改为

monitorRole 你的密码
controlRole 你的密码

第二个参数是用于指定使用的端口。缺省的端口是8080,因为我的8080端口已经被我的Apache用了,所以这里我用命令行参数把它改成了8090。也可以通过修改conf目录下的heritrix.properties文件中的参数来改变这个值。

在Classpath标签页中,增加conf为Classpath。这样就可以找到相应的配置文件。否则会遇到奇怪的问题(参见:Heritrix的Modules界面不能改变选择项的问题

选择Build Project,果然在Src下面的Bin目录生成了相应的Class文件。(本想直接编译到E:\Heritrix下面的,但是因为我的工程目录是E:\Heritrix\Src,好像Eclipse不支持输出到工程目录以外的目录,只好作罢)

现在来Run这个Application吧,在Eclipse的运行窗口中出现了

08:54:28.125 EVENT Starting Jetty/4.2.23
08:54:28.250 EVENT Started WebApplicationContext[/,Heritrix Console]
08:54:28.296 EVENT Started SocketListener on 127.0.0.1:8090
08:54:28.296 EVENT Started org.mortbay.jetty.Server@94948a
Heritrix version: @VERSION@

然后通过我的http://127.0.0.1:8090/来访问,果然看到了Heritrix的登陆窗口。应该是成功了。

我试着在Heritrix.java中增加了一句输出语句,再运行可以看到我的输出语句,说明修改可以生效。

然后我在File->export中选择输出Jar文件,替换了原来E:\Heritrix下面的heritrix-1.12.1.jar文件。然后从CMD控制台用命令行启动Heritrix,发现在输出的窗口中可以看到我增加的显示语句。

到现在为止,我的Heritrix基本可以在Eclipse环境里面编译运行了。感觉并不怎么复杂,也许是我的运气好。当然后面使用JUnit,Ant等等还有很多工作要做,一步一步来吧。

这才是一个小的开始,我会在后面逐渐开始学习使用Heritrix,希望能有更多的经验和大家分享。

Popularity: 42% [?]

Leave a Reply

You must be logged in to post a comment.