前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >opengrok搭建[通俗易懂]

opengrok搭建[通俗易懂]

作者头像
全栈程序员站长
发布于 2022-08-10 10:08:39
发布于 2022-08-10 10:08:39
3.6K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

前序

OpenGrok是一个快速,便于使用的源码搜索引擎与对照引擎,它能够帮助我们快速的搜索、定位、对照代码树。一般常用于大型的项目中,比如Android系统源码。 我也是刚来公司后才发现有这个东西的,在此自己也搭建一套,方便在家里也可以查看源码。因为是查看自己定制的系统源码所以要搭这个,如果只是查看AOSP的官方源码推荐一个网站:http://androidxref.com/

环境

OS:Debian 8/Ubuntu 14.04及以上 Web Server:tomcat8 JDK:openjdk-8 opengrok:0.12.1.6 (stable)

安装tomcat8

在这里为了简单化,直接使用系统内仓库进行安装了。 $ sudo apt-get install tomcat8

安装 openjdk-8

$ sudo apt-get install openjdk-8-jdk

安装opengrok

这个需要从github下载了。 在这里可以找到所有releases的版本 https://github.com/OpenGrok/OpenGrok/releases 我们使用最新的稳定版:0.12.1.6 (stable) 最好找一个分区空间较大的地方安装

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ wget https://github.com/OpenGrok/OpenGrok/files/467358/opengrok-0.12.1.6.tar.gz.zip

可能是为了减小体积吧,压缩了2次,所以我们也需要解压2次
$ unzip opengrok-0.12.1.6.tar.gz.zip
$ tar zxvf opengrok-0.12.1.6.tar.gz

配置opengrok

在oepngrok的安装目录中,也就是我们刚刚解压后的目录,新建src和data目录。 src目录用于存放源码的链接 data目录用于存放生成的索引文件。

创建源码链接

因为可能在下载opengrok之前就已经下好了android源码, 由于源码太大,复制和移动都不现实,所以我们可以使用软链接的方式。当然也可以在索引的时候指定源码路径,不过那样不便于管理,我不喜欢那样。以下是我的源码路径,可以根据自己的来进行修改。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ ln -s /home/lu/Android-src/AOSP-6.0 ~/data/opengrok-0.12.1.6/src/AOSP-6.0
$ ln -s /home/lu/Android-src/cm13 ~/data/opengrok-0.12.1.6/src/cm13

配置tomcat8

opengrok 0.12.1.6版本默认是只识别tomcat6和7的,所以我们需要修改一下配置文件使其搜索tomcat8,当然了也可以直接安装tomcat7,不过在这里我使用的是tomcat8,所以必须要修改配置了。 编辑opengrok安装目录中的bin/OpenGrok文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ vim ~/data/opengrok-0.12.1.6/bin/OpenGrok
找到/var/lib/tomcat7/webapps和/var/lib/tomcat7
将tomcat7改为tomcat8即可。

更简单的方式是直接使用sed命令批量改就行了
$ sed -i 's/tomcat7/tomcat8/g' ~/data/opengrok-0.12.1.6/bin/OpenGrok

配置opengrok实例路径

默认opengrok实例路径是/var/opengrok当第一次进行索引的时候会在改目录中生成配置文件和log文件。默认源码目录src和data索引文件也是要放置在这里的。为了方便起见我们也可以将其改为opengrok的安装目录下面。 编辑opengrok安装目录中的bin/OpenGrok文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ vim ~/data/opengrok-0.12.1.6/bin/OpenGrok

找到如下内容
OPENGROK_INSTANCE_BASE="${OPENGROK_INSTANCE_BASE:-/var/opengrok}"
将其改为
OPENGROK_INSTANCE_BASE="${OPENGROK_INSTANCE_BASE:-/home/lu/data/opengrok-0.12.1.6}"
即可

索引项目

opengrok已经配置完了。要对项目进行索引,我们还需要一个工具Exuberant Ctags

安装Exuberant Ctags

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ sudo apt-get install exuberant-ctags

开始索引

进入opengrok的安装目录,执行以下命令即可开始索引:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ bin/OpenGrok index

它会自动去找安装目录下面src目录中的项目源码,并且将其索引记录到data目录中。 索引过程中我们可以通过安装目录中的log/opengrok0.0.log查看当前进度。

部署

索引完成后,我们就可以部署到tomcat8中,然后在web页面进行查看了。 执行以下命令开始部署,注意由于我们是通过apt-get安装的tomcat8,所以系统会自动创建tomcat8用户和组的。而我们如果是其他用户的话需要加sudo 权限。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ sudo bin/OpenGrok deploy

还有记得启动tomcat哦,我的是debian 8所以可以用systemd来启动。 sudosystemctlstarttomcat8ubuntu14.04systemd使 sudo service tomcat8 start

搜索项目

部署成功后,我们就可以通过浏览器访问了。 http://server-ip:8080/source/ 出现以下界面就表示已经成功。

最后如果在公司源码经常改动的话,可以通过crontab定时 repo sync然后也定时~/data/opengrok-0.12.1.6/bin/OpenGrok update更新一下索引即可。

总结

刚开始的时候从网上也找了一些资料,有很多太笼统了,有的又残缺不全。最后只能去看官方文档了,发现还是文档比较靠谱点。要养成看文档的习惯啊。在安装包中的doc目录下面讲的很清楚了。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/130095.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年4月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Ubuntu18.04搭建源码搜索引擎Opengrok
OpenGrok is a fast and usable source code search and cross reference engine. It helps you search, cross-reference and navigate your source tree
全栈程序员站长
2022/08/11
9130
Ubuntu18.04搭建源码搜索引擎Opengrok
opengrok使用教程之单工程(上)
能够快速搜索代码 代码可存放于本地/服务器 代码之间可以跳转 跨平台 易于维护 … 显然SourceInsight、ctags、grep等工具在这些场景下就不太适合,于是有了OpenGrok这类代码搜索引擎。
全栈程序员站长
2022/09/02
1.3K0
Ubuntu 搭建opengrok 流程
软件下载链接: https://pan.baidu.com/s/1kCeXNlj2l3FujyMza3rM0w 提取码: iniy
全栈程序员站长
2022/09/01
1.1K0
Tomcat的三种接收请求处理方式
阻塞式I/O操作,表示Tomcat使用的是传统Java I/O操作(即java.io包及其子包)。Tomcat7以下版本默认情况下是以bio模式运行的,由于每个请求都要创建一个线程来处理,线程开销较大,不能处理高并发的场景,在三种模式中性能也最低. 启动tomcat看到如下日志,表示使用的是BIO模式:
Ant丶
2022/03/01
6340
性能环境之docker操作指南6(全网最全)
ubuntu容器内运行着的SSH Server占用22端口,对外为50022端口。
高楼Zee
2019/07/17
7600
源码阅读环境OpenGrok搭建
OpenGrok其实就是一个搜索引擎,只不过不同于Google、Baidu面向的是网页,OpenGrok面向的是源码。
达文西
2018/09/23
2.7K0
源码阅读环境OpenGrok搭建
OpenGrok在线代码浏览环境搭建
OpenGrok是专门的源码阅读工具在针对特大型源码时,比如 AOSP 和 Chromium,就需要祭出专门的源码阅读工具。 OpenGrok 属于另一类,免费,开源,运行流畅,功能也毫不逊色,该工具环境搭建和使用感觉很简单,但最近搭建的过程中遇到各种问题,直到怀疑人生,经历各种磨难最后终于可以到流程使用的程度,特此记录一方面为自己备忘,另一方面希望可以给需要搭建环境的人一些帮助,快速完成,避免重复采坑。
全栈程序员站长
2022/09/06
1.6K0
OpenGrok在线代码浏览环境搭建
Android下的配置管理之道之OpenGrok代码索引环境搭建[通俗易懂]
tomcat11 总是报NoSuchFileException annotations-19.0.0.jar
全栈程序员站长
2022/06/27
1.9K0
ubuntu OpenGrok的搭建
下载apache-tomcat-8.5.37和opengrok-0.12.1.5,解压。(这两个版本可以使用jdk1.7)
全栈程序员站长
2022/09/06
6460
搭建大型源码阅读环境——使用 OpenGrok
RTFSC 是程序员打怪升级路上避不开的功课,那营造一个舒适的环境来提升上课的体验就很有必要了。
零式的天空
2022/03/28
2.2K0
【OpenGrok代码搜索引擎】二、Windows10下基于Linux子系统搭建Opengrok代码搜索引擎
无论是android asop、linux kernel,harmony os,rtos,还是alios,代码量成万上亿行;无论用什么IDE都无法秒级找到我们想要的函数或者变量。
全栈程序员站长
2022/08/22
9890
【OpenGrok代码搜索引擎】二、Windows10下基于Linux子系统搭建Opengrok代码搜索引擎
代码浏览工具OpenGrok
代码浏览工具OpenGrok ---- OpenGrok是一款强大的跨平台代码阅读工具,许多在线源码查看网站都是使用它来搭建的,比如著名的Android在线源码查看网站androidxref. OpenGrok特性 OpenGrok 提供如下特性: 1.快速搜索代码的引擎 搜索全文、定义、符号、文件路径和修改历史 搜索任意指定子目录(分层搜索) 增量更新索引文件 2.支持类似 Google 的查询语法,比如 path:Makefile defs:target 搜索日期范围内修改的文件 支持使用通配
felix
2018/06/07
5.2K0
Opengrok本地搭建(Windows10)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/136771.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/05
1.8K0
Opengrok本地搭建(Windows10)
工欲善其事,必先利其器之—使用OpenGrok阅读源码
Tomcat8的下载 把下载的压缩包解压,并放到你喜欢的某个本地目录,如解压后的目录为
全栈程序员站长
2022/09/01
6430
工欲善其事,必先利其器之—使用OpenGrok阅读源码
搭建大型源码阅读环境——使用 OpenGrok
RTFSC 是程序员打怪升级路上避不开的功课,那营造一个舒适的环境来提升上课的体验就很有必要了。
mzlogin
2020/04/16
3.3K1
搭建大型源码阅读环境——使用 OpenGrok
OpenGrok环境搭建[通俗易懂]
https://download.csdn.net/download/rocky_zhm/10864456
全栈程序员站长
2022/08/31
1.1K0
Tomcat通过Redis实现session共享的完整部署记录
对于生产环境有了一定规模的tomcat集群业务来说,要实现session会话共享,比较稳妥的方式就是使用数据库持久化session.为什么要持久化session(共享session)呢?因为在客户端每个用户的Session对象存在Servlet容器中,如果Tomcat服务器重启或者宕机的话,那么该session就会丢失,而客户端的操作会由于session丢失而造成数据丢失;如果当前用户访问量巨大,每个用户的Session里存放大量数据的话,那么就很占用服务器大量的内存,进而致使服务器性能受到影响。数据库持久化session,分为物理数据库和内存数据库。物理数据库备份session,由于其性能原因,不推荐;内存数据库可以使用redis和memcached,之前已经介绍了memcached方式实现session共享了,下面说下redis方式:
洗尽了浮华
2018/09/28
5.4K0
Tomcat通过Redis实现session共享的完整部署记录
【OpenGrok代码搜索引擎】三、OpenGrok常用命令
为了防止一些无法预料的情况发生,建议在完成代码项目索引创建后对索引生成器(indexer)生成的配置文件configuration.xml进行备份。
全栈程序员站长
2022/08/11
1.1K0
OpenGrok安装
windows安装OpenGrok安装需要的几个工具 1. JDK 2. tomcat 3. opengrk 4. ctags
全栈程序员站长
2022/08/14
9680
OpenGrok安装
Ubuntu Server 13.10 安装(ProFTP、Tomcat6、FFMpeg)
使用apt-cache search 查找需要的软件包名 例如: #sudo apt-cache serach java6 openjdk-6-jdk - OpenJDK Development Kit (JDK) openjdk-6-jre - OpenJDK Java runtime, using Hotspot JIT openjdk-6-jre-headless - OpenJDK Java runtime, using Hotspot JIT (headless) #sudo apt-cache serach tomcat6 libtomcat6-java - Servlet and JSP engine -- core libraries tomcat6 - Servlet and JSP engine tomcat6-admin - Servlet and JSP engine -- admin web applications tomcat6-common - Servlet and JSP engine -- common files tomcat6-docs - Servlet and JSP engine -- documentation tomcat6-examples - Servlet and JSP engine -- example web applications tomcat6-extras - Servlet and JSP engine -- additional components tomcat6-user - Servlet and JSP engine -- tools to create user instances
星哥玩云
2022/06/30
4410
相关推荐
Ubuntu18.04搭建源码搜索引擎Opengrok
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文