准备工作:
(1)solr源码使用ant构建,所以需先安装ant环境。这里省略掉ant环境安装,下载地址:http://ant.apache.org/bindownload.cgi
(2)构建solr源码时,还需要lvy(lvy是神马,自行百度吧),下载lvy,解压后将其中的lvy-xx.jar放置$ant_home$/lib/目录下面。下载地址:http://ant.apache.org/ivy/download.cgi
(3)下载 solr3.6.1 的src源码包。 下载地址:http://apache.etoak.com/lucene/solr/3.6.1/
进入正题:
1. 解压solr源码包,进入根目录
2. 在根目录下执行ant eclipse,生成eclipse需要的项目文件(假如第一次构建,这一步大概需要20分钟)
3 .导入项目到eclipse,选择File > Import > Existing Projects into Workspace,导入目录(选取solr源码解压后的根目录)
4. 展开项目,找到solr/solrj/src/test,其下有org.apache.solr.client.solrj包,找到StartSolrJetty.java文件(solr源码中内嵌jetty容器)
5. 在run StartSolrJetty.java前,需修改main函数,修改两个地方
一是connector.setPort(8080);端口指定为你自己所需,只要不和其他端口冲突就ok,我这儿改为8888。
二是bb.setContextPath("/");和bb.setWar("src/webapp/web");,修改为bb.setContextPath("/solr");以及bb.setWar("solr/webapp/web");
示例代码:
Server server = new Server();
SocketConnector connector = new SocketConnector();
connector.setMaxIdleTime(1000 * 60 * 60);
connector.setSoLingerTime(-1);
//connector.setPort(8080);
connector.setPort(8888);
server.setConnectors(new Connector[] { connector });
WebAppContext bb = new WebAppContext();
bb.setServer(server);
//bb.setContextPath("/");
//bb.setWar("src/webapp/web");
bb.setContextPath("/solr");
bb.setWar("solr/webapp/web");
6. 同时在run configure中Arguments > VM arguments中写入solr home的路径,即 -Dsolr.solr.home=solr/example/solr,点击run即可。
就这样,solr的服务端就启动起来了,之后就任你发挥啦,开始你的solr源码阅读之旅吧...