最近在使用solr时,配置会有一些问题,log里面打印出日志了,但是还是不知道发生这样错误的原因。于是想学习一下相关的solr源码,以下是如何搭建solr调试环境步骤。

solr调试环境搭建,首先下载源码。

  可以通过 http://archive.apache.org/dist/lucene/solr/ 下载各个版本的源码。还可以在github下载最新的solr代码,地址是:https://github.com/jeniss/lucene-solr。

源码导入Intellij idea

  在下载后的solr项目,可以发现是用ant管理的。所以需要确保已安装ant。ant下载地址:http://ant.apache.org/bindownload.cgi。在环境变量中配置ant。ANT_HOME:D:\Program Files (x86)\java\apache-ant-1.9.7,Path:%ANT_HOME%\bin。配置完成后,执行ant -version,显示ant版本,则代表安装成功。如图。

  接下来,solr源码编译为idea的项目。

  在根目录下,运行ant命令,查看ant可以执行的操作。

  当我们执行ant idea,即可将solr源码编译成intellij idea的项目。在编译ant idea时候可能会失败,这是可以运行 ant ivy-bootstrap。

  编译成功后,在intellij idea中通过open的方式导入。选择“lucene-solr”父项目后,项目会整体导入。

 -> 

  此时,项目导入intellij idea。

配置JDPA远程调试

  从5.3开始,solr不再提供war包。solr团队说:“Solr is intended to be a server not a Java web application”。因此,在\lucene-solr\solr目录下,运行ant server创建solr server。solr的cores默认的根目录为\lucene-solr\solr\server\solr。

  然后,在idea配置远程调试。在“Run Configurations”里添加Remote,在配置中,自定义Name,Host,和Port。Transport选择socket选项。

  接着,我们在cmd中进入lucene-solr\solr\bin文件夹中,运行solr start -p 8988 -f -a "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8988",配置的端口号(e.g. 8988)要与在idea中配置的端口号一致。

  最后,在idea中运行debug模式。我们在网页中http://localhost:8988,则可以开始进行调试。

在Intellij idea中查看solr日志文件

  为了更方便的查看solr日志文件,可以进行如下配置在idea中查看日志。

  在Debug Configurations中添加\lucene-solr\solr\server\logs\solr.log文件。

  修改\lucene-solr\solr\server\resources\log4j.properties文件,自定义日志输出的内容。在远程调试时,idea中显示的日志如下:

用Intellij idea搭建solr调试环境的更多相关文章

  1. Solr4.8.0源码分析(4)之Eclipse Solr调试环境搭建

    Solr4.8.0源码分析(4)之Eclipse Solr调试环境搭建 由于公司里的Solr调试都是用远程jpda进行的,但是家里只有一台电脑所以不能jpda进行调试,这是因为jpda的端口冲突.所以 ...

  2. 在win10环境下搭建 solr 开发环境

    在win10环境下搭建 solr 开发环境 2017年05月30日 09:19:32 SegaChen0130 阅读数:1050   在win10环境下搭建 solr 开发环境 安装环境  Windo ...

  3. Redis源码漂流记(二)-搭建Redis调试环境

    Redis源码漂流记(二)-搭建Redis调试环境 一.目标 搭建Redis调试环境 简要理解Redis命令运转流程 二.前提 1.有一些c知识简单基础(变量命名.常用数据类型.指针等) 可以参考这篇 ...

  4. IntelliJ IDEA 搭建 Go 开发环境

    本文介绍 Windows7 x64 基于 IntelliJ IDEA 搭建 Go 语言开发环境.主要是一些操作过程截图以及简单文字描述,如有不清楚的地方​,欢迎指正.所有软件使用当前(2016.12. ...

  5. 一、Spring MVC起步——IntelliJ IDEA 搭建Spring MVC环境(手把手搭建)

    本机环境: JDK 1.7 IntelliJ IDEA 2017.2 1.新建项目 Create New Project ​ 选择Spring MVC ​ 填写项目名和项目存放位置 ​ 然后点击Fin ...

  6. 使用Sublime Text搭建python调试环境

    原文地址:http://blog.csdn.net/wenxuansoft/article/details/38559731 pycharmt等IDE虽然用着爽,但毕竟在速度.资源上还是比较让人不爽的 ...

  7. win10下正确使用Sublime Text搭建python调试环境

      pycharmt等IDE虽然用着爽,但毕竟在速度.资源上还是比较让人不爽的. 使用IDE无非是图个方便省事,特别是像我这种有些记性差的来说. IDE说起来方便于的几个地方就是: 1.语法颜色高亮 ...

  8. 使用Sublime Text搭建python调试环境[转]

    pycharmt等IDE虽然用着爽,但毕竟在速度.资源上还是比较让人不爽的. 使用IDE无非是图个方便省事,特别是像我这种有些记性差的来说. IDE说起来方便于的几个地方就是: 1.语法颜色高亮 2. ...

  9. Intellij Idea搭建Spark开发环境

    在Spark高速入门指南 – Spark安装与基础使用中介绍了Spark的安装与配置.在那里还介绍了使用spark-submit提交应用.只是不能使用vim来开发Spark应用.放着IDE的方便不用. ...

随机推荐

  1. Linux下的用户和用户组,文件权限:chown和chmod

    如下图所示,root权限下新建一个用户MasterBai, /etc/passwd文件中新加入一些信息 这个文件中,记录了该服务器的用户信息,如下图红色框起来的用户,就是我们自己创建的用户,而起来2- ...

  2. Centos 7.0 界面

    执行:systemctl get-default //显示默认的界面方式 multi-user.target //命令行界面 graphical.target //图形化界面 执行:systemctl ...

  3. 利用协程和socket实现并发

    服务端代码 from gevent import monkey monkey.patch_all() from gevent import spawn import socket def commun ...

  4. linux基础—课堂随笔09_数组

    数组:(6.14 第一节) 取分区利用率,大于百分之八十则发出警报 取分区第一列 取分区使用率: 脚本: 检查脚本语法: ——end 数组切片: 1.跳过前两个取后面 2.跳过前两个取三个 生成10个 ...

  5. Number of Parallelograms CodeForces - 660D (几何)

    Number of Parallelograms CodeForces - 660D You are given n points on a plane. All the points are dis ...

  6. 【XDOJ】坑爹的杜神

    原题: 众所周知,杜神非常喜欢出大模拟,也非常喜欢设置一些细节坑人.例如,在某次大赛中,他出了一道这样的题 (以下省略3000字) 计算出答案a后,你应该将a除以1000,再保留到小数点后两位输出,四 ...

  7. 本地phpmyadmin 访问远程数据库服务器

    第一步:打开/phpmyadmin/libraries 目录   第二步:修改config.default.php 文件(linux下可用vim编辑,FreeBSD下可用vi或是ee编辑)找到“All ...

  8. AspectJ注解支持

    <aop:aspectj-autoproxy/> 配置aspectj启动 AspectJAutoProxyBeanDefintionParser implements BeanDefini ...

  9. Java 实现的 简单WordCount功能

    githup 链接:https://gitee.com/iy2524/WordCount.git PSP表格  psp2.1  psp阶段 估计耗时(分钟)  实际耗时(分钟) Planning  计 ...

  10. img标签的before,after伪类

    在CSS中总有一些你不用不知道,用到才知道的“坑”.比如今天要谈的,把 before, after 伪类用在 <img> 标签上.嗯,实际上你用你会发现,在大多数浏览器这是无效的,dom中 ...