solr源码通过idea进行本地调试

试验环境:

solr5.3(和线上保持一致,历史功能,所以版本比较旧)

jdk1.8

idea2018版

ant1.9版本

solr源码地址:http://archive.apache.org/dist/lucene/solr/ ,记得下载源码 

solr-5.3.1-src.tgz

因为源码默认结构试验的ant,所以需要先安装ant1.9,http://ant.apache.org/bindownload.cgi

配置ant的环境变量,同java,因为环境比较基础对于开发人员应该比较简单,所以不过多记录了

源码目录结构:

cbfb925ffa4b6302f3f5af068be826b5b11.jpg

第一步:项目转为idea结构

cd 到 solr的根目录,执行以下命令

ant ivy-bootstrap  //安装ivy
cd solr
ant server
cd ..
ant idea

说明:ant类似maven,有时候网络不好会卡住或者失败,重新执行就好了,这一步死活过不去的话,可以百度一下,我是2次成功的

然后idea,打开根目录(删除本分,为其它测试引入,请忽略)

fcc569bda4b1afbc35049c21e60d8be6a08.jpg

第二步:debug模式启动solr(强烈建议,通过  根目录/solr/bin 中的 solr --help 看一下都支持什么)

cd solr/bin

solr -f -a  "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=18984" -port 8984

说明:address 为debug 调试接口   ,-port 为solr的访问接口

92f0a4f33ecd4f728b3e8fed4496887bbb5.jpg

这时候访问solr,http://localhost:8984/solr,需要添加Core,会的跳过,不会的百度...很简单或者用我下面吐槽的办法

f09be10eea6829f69b823f2427aed229cec.jpg

注意:这里可能会报错,根据错误提示创建文件(从demo里面copy),只是测试的话可以参考吐槽部分

76f568e4f50c4b5ac439e307575d0fd8856.jpg

以下部分纯属吐槽(记录自己的一次测试,和主流程无关),经验丰富,可以跳过

-------------------------------------------------------------------------------------------

上面主流程没有core,需要新建,可能会遇到一些问题,可以根据提示解决,后来为了测试solr的一些命令做了一个小测试

因为我只是做实验所以导入了一份测试数据 通过solr -f -e dih ,会生成一些测试数据

0975d32653122fcffeb50ed96ef67a2e952.jpg

c7c0c3c5ff384eb1c0d92c960d919184790.jpg

这时候可以关闭solr了,因为这次操作是为了生存测试core,这里被坑了一次 -e dih 无法开启调试模式(也许是自己测试问题)

solr stop -p 8984 

这时候测试 core已经有了,再开启debug 模式,这时候会用到上面命令提示的-s 的路径

54dbabea7dbe09191157832a076c2c729a0.jpg

solr -f -a  "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=18984" -port 8984    -s "E:\idea_workspace\solr-5.3.1\solr\example\example-DIH\solr"

54ec57e88c9d3ecf830c8d43b7e9177a407.jpg

吐槽结束,回归正途

------------------------------------------------------------------------------------

第三步:通过idea 进行remote debug

8ae355ad4bbf0b254f8deda4e5e4a906544.jpg

说明:远程调试,握手失败

Error running Debugger: Unable to open debugger port (localhost:8983):  java.io.IOException "handshake failed - connection prematurally closed"

原因:1.防火墙关闭(没测)  2.检查你的solr 命令中的参数,主要a 后面那部分,有些网上的资料也的不太准确,你记得自己 solr --help 看下例子

成功的截图:

98fe8934f11709235ae160077456a5fc81c.jpg

第四步:前面都成功的话,开始任意的打断点,撸代码吧

9962be89a5fc9b96ae291a6dc6c1486d0cd.jpg

679aa32938a582ffa14de36c3ba1008ede4.jpg

成功进入断点

97b1c03d4546229346f40cd0d88a1e4de6d.jpg

致此完成,还有问题欢迎加群讨论学习

qq群:208779755


附学习:solr 常用命令参数截图

6b15516114896254f18fff2dcd037fc1601.jpg

 

 

 

 

 

转载于:https://my.oschina.net/haitaohu/blog/3077588

Solr源码在MyEclipse下的搭建 1. 下载并按装Ant 下载地址: http://ant.apache.org/bindownload.cgi Ant环境变量配置: ANT_HOME: E:\Program Files\apache-ant-1.9.0 Path: %ANT_HOME%\bin 在cmd中输入ant -v, 有下图结果表示成功安装 2. 下载Solr源码 下载地址: http://lucene.apache.org/solr/mirrors-solr-latest-redir.html 3. 用Ant把Solr源码转换为MyEclipse Web项目 进入Solr源码的根目录 在cmd中输入ant eclipse, 按回车后你将会看到如下画面, 如果你的c:\Users\用户名\.ant\lib下没有ivy jar包的话 此时你按它说的那样需输入ant ivy-bootstrap命令下载ivy, 当然你也可以直接吧ivy jar包直接放入c:\Users\用户名\.ant\lib下 下好后再输入刚才的ant eclipse命令,回车后你会看到一堆信息,此时表明ant已经再帮你生成项目了。期间会等一段时间,在这期间也可能会出现fault信息,而且就是它可能造成你很久都看不到成功生成,在我目前遇到的情况下的解决办法是,再输入一遍命令,之后就看你的点了,或者你有更好的解决办法。 4. 把Eclipse普通项目转化为web项目 如果是Eclipse可以看考百度。这里只介绍MyEclipse的转化方法。 1. 在项目根目录下创建一个WebRoot文件夹 2. 找一个MyEclipse Web项目,把.project文件中的<buildSpec>...</buildSpec>和<natures>...</natures>标签中的内容复制到生成的项目中的.project文件中。 3. 找到Web项目中的.mymetadata文件,看看里面的内容,就知道怎么回事了。 4. 求改项目编译结果的存放地址,找到"<classpathentry kind="output"..."部分,修改path的值为WebRoot/WEB-INF/classes,这样就可以跑自己的代码了。 5. 配置Solr运行环境 1. 把solr.war(solr-4.2.0\example\solr-webapp\solr.war)里的东西全复制到WebRoot下 2. 创建solr/home, 把solr-4.2.0\example\solr所有文件复制到你创建的solr/home目录下 3. 创建JNDI让程序找到solr/home(当然你也可以用System Properties方式), 在WebRoot/META-INF目下创建context.xml 文件,并写入以下字符 <?xml version='1.0' encoding='utf-8'?> <Context> <Environment name="solr/home" type="java.lang.String" value="E:\Solr" override="true" /> </Context> 注:value对应地址即你创建的solr/home目录地址 4. 部署到tomcat,开始Solr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值