设为首页 收藏本站
查看: 1282|回复: 0

[经验分享] Solr 4.7.2打补丁重新编译流程

[复制链接]

尚未签到

发表于 2017-12-19 10:25:20 | 显示全部楼层 |阅读模式
下载.patch补丁文件:
  https://issues.apache.org/jira/browse/SOLR-6969,选中补丁文件,右键【另存为】即可下载到本地。

下载solr4.7.2源码:
  源码两种下载方式:
  只下载solr-core:
  1.进入https://mvnrepository.com/官网,搜索solr-core,选择相应版本(Version 4.7.2),就会出现我们想要的jar包;
  2.右键【Download(JAR)】,复制链接地址,如http://central.maven.org/maven2/org/apache/solr/solr-core/4.7.2/solr-core-4.7.2.jar,
  打开浏览器新标签页,输入该地址的前半部分,即http://central.maven.org/maven2/org/apache/solr/solr-core/4.7.2/,进入页面看到solr-core的jar包,source包,javadoc包;
  3.下载solr-core-4.7.2-sources.jar包即可;
  下载整个solr 4.7.2版本的源码:(事实证明这种方式更适用)
  1.进入http://archive.apache.org/dist/lucene/solr/4.7.2/;
  2.下载solr-4.7.2-src.tgz到本地。

打补丁:
  目标代码:solr-4.7.2-src.tgz
  经过搜索,打补丁有多种方式,这里简单提及以下三种:
  1.IDEA patch:(推荐,缺点:无法回退)
  1).解压并加载solr-4.7.2-src项目到IDEA中;
  2).菜单栏【VCS】——【Apply Patch...】,选择要打的补丁文件SOLR-6969.patch;
  3).选择并查看想要合并的文件,【Apply】即可。
  2.git bash patch:
  适用git bash来打补丁,它不仅可以打补丁,还可以生成补丁,使用方法自行百度;
  3.Linux/Unix diff/patch:
  diff命令可以生成补丁;
  patch命令可以应用补丁;
  使用方法参考:http://www.cnblogs.com/cocowool/p/6409643.html

打包solr-core:
  进入解压后的solr-4.7.2-src ROOT目录下,打开README.txt文件,得到如下信息:
  

Apache Lucene/Solr  

  
lucene/ is a search engine library
  
solr/ is a search engine server that uses lucene
  

  
To compile the sources run 'ant compile'
  
To run all the tests run 'ant test'

  
To setup your>  
For Maven info, see dev-tools/maven/README.maven
  


安装Apache ivy:
  背景:ant编译依赖Apache ivy,Apache ivy是一个管理项目依赖的工具,类似于Maven;
  安装方法
  1.官网下载:
  1.进入https://ant.apache.org/ivy/,下载apache-ivy-2.4.0-bin.zip
  2.解压后,ROOT目录下可以看到【ivy-2.4.0.jar】这个包;
  3.拷贝【ivy-2.4.0.jar】到【ANT_HOME/lib】目录下,即完成ivy的安装。
  2.从maven repository下载ivy-${VERSION}.jar:
  1.进入https://mvnrepository.com/,搜索ivy;
  2.选中【org.apache.ivy » ivy】,点击链接并进入相应版本(这里选ivy-2.4.0)的详情页;
  3.下载【ivy-2.4.0.jar】;
  4.拷贝【ivy-2.4.0.jar】到【ANT_HOME/lib】目录下,即完成ivy的安装。

△编译solr-core : (编译过程中,出现的个别错误,需要根据打印出的日志,耐心去解决)  
  在solr-4.7.2-src ROOT目录下,打开CMD命令行,执行【ant compile】命令开始编译;
    备注:第一次编译,耗时较长,需要耐心等待
  说明:打包好的solr-core-${VERSION}.jar需要和solr-core-4.7.2.jar进行对比,保证目录结构的一致性,否则可能不能用
  编译完成后,每个项目下会生成一个build文件夹,即编译后的class文件;

打包solr-core:
  进入【solr-4.7.2-src\solr-4.7.2\solr\build\solr-core\classes\java】目录,打开CMD命令行,执行以下命令开始打包:
  

jar cvfm solr-core-4.7.2.jar META-INF/MANIFEST.MF -C ./ .  

  备注:jar命令使用帮助:jar -help
  

用法: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...  
  选项:
  
    -c 创建新档案
  
    -t 列出档案目录
  
    -x 从档案中提取指定的 (或所有) 文件
  
    -u 更新现有档案
  
    -v 在标准输出中生成详细输出
  
    -f 指定档案文件名
  
    -m 包含指定清单文件中的清单信息
  
    -n 创建新档案后执行 Pack200 规范化
  
    -e 为捆绑到可执行 jar 文件的独立应用程序指定应用程序入口点
  
    -0 仅存储; 不使用任何 ZIP 压缩
  
    -P 保留文件名中的前导 '/' (绝对路径) 和 ".." (父目录) 组件
  
    -M 不创建条目的清单文件
  
    -i 为指定的 jar 文件生成索引信息
  
    -C 更改为指定的目录并包含以下文件
  
    如果任何文件为目录, 则对其进行递归处理。
  
    清单文件名, 档案文件名和入口点名称的指定顺序与 'm', 'f' 和 'e' 标记的指定顺序相同。
  


  
    示例 1: 将两个类文件归档到一个名为>
  
      jar cvf>  
    示例 2: 使用现有的清单文件 'mymanifest' 并
  
      将 foo/ 目录中的所有文件归档到 'classes.jar' 中:

  
      jar cvfm>  


打包solr.war:
  1.解压【solrcloud-4.7.2.zip】,进入【solrcloud-4.7.2\solrcloud-4.7.2】目录下,用新生成的solr-core-4.7.2.jar替换原来的jar包;
  2.打开CMD命令行,执行【ant】命令,打包文件,在当前目录下生成新的solr.war;

部署solr.war:
  1.上传solr.war到hadoop主机节点上;
  2.删除HDFS上旧的war:
  

hdfs dfs -rm /lib/jetty/solr.war  

  3.上传新的war到HDFS上:
  

hdfs dfs -put solr.war /lib/jetty  


后续工作:
  重新拉起data720,观察日志信息。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-425635-1-1.html 上篇帖子: 一、Solr的相关概念了解 下篇帖子: 智能提示(一) Solr (suggest)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表