在IDEA调试Solr/Lucene代码

一、环境

Windows

JDK 1.8

IDEA  --不要太低版本即可

 

二、下载

1.Solr/Lucene代码

最新版本在这里下载:

https://solr.apache.org/downloads.html

历史版本在这里下载:

https://archive.apache.org/dist/lucene/solr/

下载新版的源代码包,例如目前最新的是solr-8.11.1-src.tgz

 

2.Apache Ant

https://ant.apache.org/bindownload.cgi

下载新版的binary运行包,例如目前最新的是apache-ant-1.10.12-bin.zip

 

3.Apache Ivy

https://ant.apache.org/ivy/download.cgi

下载新版的binary运行包,例如目前最新的是apache-ivy-2.5.0-bin.zip

 

三、安装和编译

1.安装Ant

(1) 解压binary运行包到C盘,改名叫ant,完整路径为c:\ant

(2) 打开环境变量:右键计算机 -> 属性 -> 高级系统设置 -> 环境变量

(3) 新增ANT_HOME属性,值为c:\ant

(4) 编辑Path属性,在末尾加入%ANT_HOME%\bin

(5) 编辑CLASSPATH属性,在末尾加入%ANT_HOME%lib(一般可忽略该步骤)

(6) 测试一下:打开命令行,输入ant -version

* Path要注意首字母大写,虽然小写也能用,但部分场景会导致报错。

* 追加的值用;隔开。

 

2.安装Ivy

(1) 解压binary运行包到C盘,改名叫ivy,完整路径为C:\ivy(一般可忽略该步骤)

(2) 打开环境变量:右键计算机 -> 属性 -> 高级系统设置 -> 环境变量(一般可忽略该步骤)

(3) 新增IVY_HOME属性,值为C:\ivy(一般可忽略该步骤)

(4) 把C:\ivy目录下的所有文件复制到C:\ant\lib目录

* 也可以直接用命令进行安装(但版本不一定是最新的):

ant ivy-bootstrap

 

3.编译Solr/Lucene

(1) 解压源代码包到E盘(也可以放C盘),完整路径为E:\solr-8.11.1

(2) 打开命令行:开始 -> 运行 -> cmd

(3) 在命令行进入E:\solr目录,把Solr源代码编译成IDEA项目

e:
cd solr-8.11.1
ant idea

* 如果提示C:\User\xxx\.ant\lib does not exist,就把C:\ivy目录下的所有文件复制到C:\User\xxx\.ant\lib\目录

* 如果C:\User\xxx\目录下没有\.ant\lib\文件夹,手动创建即可

* 其中xxx是你的用户名,例如C:\User\clotho\.ant\lib

* 编译过程中ivy会从maven或github下载依赖包,由于国内访问这2个网站不稳定,所以有可能会报关于网络请求的错误,请重新多试几次ant idea命令,或换个网络

 

(4) 另外,还需要进入/solr-8.11.1/solr/目录中编译服务端

cd solr
ant server

* 不执行此步骤的话,在创建collection时会报找不到/dist/目录的错误,就是solrconfig.xml中配置的${solr.install.dir:../../../..}/dist/

 

4.打开项目

编译完成(提示BUILD SUCCESSFUL)后,用IDEA打开该项目。如果提示找不到String类型之类的,则执行以下操作:

File -> Project Structure -> Project Settings -> Project -> Project SDK -> 选择之前配好的JDK

 

5.本地调试--运行服务端

(1) 修改路径

打开solr/solrj/src/test/org/apache/solr/client/solrj/StartSolrJetty.java文件,修改main方法的其中两行,原来的代码是:

//System.setProperty("solr.solr.home", "../../../example/solr");
bb.setWar("webapp/web");

修改里面的路径。例如,假定solr的根目录在E:/solr-8.11.1,就把代码改成:

String solrServer = "e:/solr-8.11.1/solr/server";
System.setProperty("solr.solr.home", solrServer + "/solr");
bb.setWar(solrServer + "/solr-webapp/webapp");

* 不同版本的Solr的子路径有点区别,请根据实际版本修改子路径

 

(2) 点击调试或运行StartSolrJetty.java

 

(3) 用浏览器访问http://localhost:8983/solr/

 

 

三、关于ElasticSearch

跟Solr的操作步骤类似,只是把Ant换成了Gradle,就是用gradle idea或gradlew idea命令进行编译,编译后用IDEA打开

* 已安装好Gradle的话用gradle idea,没安装过Gradle的用gradlew idea

 

 

参考资料:

https://www.cnblogs.com/hapjin/p/13223116.html

http://qianjiasong.com/post/solr-debug-idea-build/

 

posted @ 2022-01-27 18:57  Clotho_Lee  阅读(548)  评论(0编辑  收藏  举报