在本地Eclipse运行solr源码

前言:本文记录了linux环境下,solr源码在本地Eclipse上部署运行的整个过程,对于其中遇到的每个报错现象以及解决的方法都有详细说明,如果部署过程中遇到相似问题,欢迎交流讨论!
部署环境:linux + jdk 1.8 + Eclipse +  tomcat 8.0 + solr 6.3
步骤:
一。jdk + Eclipse + tomcat 运行环境搭建,这个过程网上教程比较多,可以自己搜索,solr6.x需要jdk1.8,tomcat 8.0,所以安装的时候注意版本号。
二。solr源码下载编译
     下载地址:http://www.apache.org/dyn/closer.cgi/lucene/solr ,solr官网下载地址,下载solr源码
solr-6.3.0-src.tgz。
    在本地解压源码包:
      在本地Eclipse运行solr源码
    解压后进入项目,solr采用ant编译,编译之前需要预先安装ant编译环境,这个网上有教程,可以自己查找。
    ant安装成功后,执行编译命令,先编译成Eclipse项目,编译指令:ant eclipse。
    在本地Eclipse运行solr源码
    编译成功后会有提示
     在本地Eclipse运行solr源码
三。将项目导入Eclipse并且转化成web项目
     打开Eclipse,选择左上角 File → Import → Existing Projects into Workspace ,选择项目路径,将项目导入到Eclipse中。
     在本地Eclipse运行solr源码
   导入完成后将该项目转化成web项目。
   右键点击项目,选择Properties,点击 Project Facets,选中Dynamic Web Module,并且将后面的version改成2.5,然后选中java。
    在本地Eclipse运行solr源码
   点击最下面的Further configuration and available,将Content directory 改为 Webapps
   点击确定,完成后如图所示
在本地Eclipse运行solr源码
 四。文件配置
    将 solr-6.3.0/Webapps/WEB-INF目录删除,然后将 solr-6.3.0/solr/webapp/web/ 目录下的所有文件拷贝到 solr-6.3.0/Webapps/ 下
   在 solr-6.3.0/Webapps/ WEB-INF下新建文件夹lib,将solr-6.3.0/solr/server/lib/ext里面的所有文件拷贝进去。
    进入到 solr-6.3.0/solr下执行命令 ant compile,会在core跟solrj目录下生成项目依赖的jar包。
    将solr-6.3.0/solr/core/lib, solr-6.3.0/solr/solrj/lib 目录下的jar包全部拷贝到 solr-6.3.0/Webapps/ WEB-INF/lib 目录下
    进入 solr-6.3.0/lucene目录,执行命令 ant compile,然后进入build目录,将每个子项目打成的jar包都拷贝到 solr-6.3.0/Webapps/ WEB-INF/lib目录下,由于目录较多,可以用: cp ./*/*.jar 来通配。进入 solr-6.3.0/lucene/build/analysis,同样将所有子目录下的jar包拷贝到 solr-6.3.0/Webapps/ WEB-INF/lib目录下。
    在solr-6.3.0目录下新建文件夹:solrhome,更改文件solr-6.3.0/Webapps/WEB-INF/web.xml。
在本地Eclipse运行solr源码
同时将文件最后部分注释,否则页面访问的时候会因为权限问题访问不了。

在本地Eclipse运行solr源码
   将solr-6.3.0/solr/server/solr下的所有文件拷贝到solrhome下面
   在solr-6.3.0/Webapps/WEB-INF 下新建目录classes,将solr-6.3.0/solr/server/resources 下的log4j.properties拷入其中。 到现在,配置基本完成。
五。运行调试
      在Eclipse运行代码,报错,网上查找办法,要下载支持Lambda的jdk。
在本地Eclipse运行solr源码
   后来发现刚开始用的jdk版本为jdk1.8.0_101,但是对应java版本还是1.9,重新下载jdk1.8.0_112,在s olr-6.3.0/solr重新执行编译指令,将jar包拷到web目录下。重新启动Eclipse,目前没有报错。
在本地Eclipse运行solr源码
  在浏览器中输入访问地址:http://localhost:8080/solr-6.3.0/index.html    在本地Eclipse运行solr源码
发现页面还是有问题,查看后台日志,果然报错了,继续寻找解决方法:
在本地Eclipse运行solr源码

网上查找发现是tomcat版本的问题,tomcat8.0.38添加了url格式检查,将tomcat版本更改为 8.0.35,重新启动服务,大功告成!
在本地Eclipse运行solr源码

猜你喜欢

转载自blog.csdn.net/a13662080711/article/details/80047359