前言
最近在学习solr,需要查看源码,记录一下编译solr源码的整个过程;
Solr源码下载地址
https://archive.apache.org/dist/lucene/solr/
我这里用的是8.8.2版本的如下:
源码编译
相关描述
Lucene和Solr组合代码库,是通过Apache的Ant作为编译系统;
Ant是一个基于Java的命令行工具;
Ant下载地址
https://archive.apache.org/dist/ant/binaries/
Ant环境配置
ANT_HOME:ant存放的路径
Path:;%ANT_HOME%\bin
ClassPath:;%ANT_HOME%\lib
cmd执行如下:
表示配置成功;
编译步骤
1、下载ant依赖包
说明
本地未安装ivy时候,需要执行以下操作,否则编译过程中会出现ivy不可用的异常情况;
操作
在项目根目录下执行命令
ant ivy-bootstrap
自动下载ant依赖包。第一次执行需要较长时间
显示BUILD SUCCESSFUL则成功。
(这一步只需要执行一次,后面不需重复执行)
2、转换为idea项目
说明
这一步会将solr源码转成idea项目,并且ivy会下载相关依赖包
操作
在项目根目录下执行命令
ant idea
显示BUILD SUCCESSFUL,才可以将项目导入到idea中,否则会有问题
注意:
下载jar可能会失败,这时候可以手动下载jar包,放入ivy仓库对应的包下
例如可以从Maven仓库进行下载,地址如下:
https://mvnrepository.com/
3、编译solr源码
操作
进入项目根目录 solr/ 目录,执行命令
ant server
显示BUILD SUCCESSFUL,则成功
IDEA上调试solr源码
一、直接启动调试
-
准备一个solr_home,放在solr/server/ 目录下
-
在StartSolrJetty.java中,设置上面solr_home的路径和webapp war路径
例如: -
solr/solrj/src/resources
目录下添加log4j2配置文件(solr/solrj/src/resources/log4j2.xml) -
run StartSolrJetty.java,然后访问 localhost:8983/solr
二、远程调试
-
用idea编辑器打开,进入Run->Edit Configurations, 添加remote调试器如下:
-
在远程调试模式下启动JVM;
操作如下:
cmd 进入/solr/bin执行
solr start -p 8983 -f -a "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8983 -
run remote调试器,然后访问 localhost:8983/solr