ubuntu14.04安装openGrok及多项目配置方法

本文详细介绍了如何在Ubuntu 14.04上安装OpenGrok,包括下载稳定版本,配置环境(如Tomcat和Java),安装ctags,以及设置多项目的步骤。同时讲解了如何为每个项目建立索引,并修改OpenGrok配置文件以实现独立搜索,最后提到了多项目的好处和重启Tomcat的必要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考官网:http://opengrok.github.io/OpenGrok/

https://github.com/oracle/opengrok/releases

https://github.com/oracle/opengrok/wiki/How-to-install-OpenGrok

https://github.com/oracle/opengrok/blob/master/doc/EXAMPLE.txt


1. 下载stable 版本
https://github.com/oracle/opengrok/releases/download/1.1-rc21/opengrok-1.1-rc21.tar.gz


2. 环境

     container:tomcat8,安装在/opt/apache-tomcat-8.5.28 //如果没有安装,可以参考另一篇《ubuntu14.04安装tomcat8》

     java:java-8-openjdk-amd64

     exuberant-ctags安装:sudo apt-get install exuberant-ctags //安装 ctags用于对 C\C++代码的支持

3.安装

   step1 解压opengrok-1.1-rc21.tar.gz到指定目录 //这里放在/work/opengrok下,后面使用OPENGROK_PATH代替,便于理解

   cd /work

   tar -zxvf opengrok-1.1-rc21.tar.gz

   mv opengrok-1.1-rc21 opengrok // OPENGROK_PATH=/work/opengrok
  

   step2 配置tomcat路径

   vi OPENGROK_PATH/bin/OpenGrok

   在Usage()上面一行添加:

   export OPENGROK_TOMCAT_BASE="/opt/apache-tomcat-8.5.28"   #tomcat8安装路径,后续用TOMCAT_PATH代替,便于理解

4. 配置opengrok


 cp OPENGROK_PATH/lib/source.war  TOMCAT_PATH/webapps/source.war

cp OPENGROK_PATH/lib/source.war  TOMCAT_PATH/webapps/project1.war

cp OPENGROK_PATH/lib/source.war  TOMCAT_PATH/webapps/project2.war

cp OPENGROK_PATH/lib/source.war  TOMCAT_PATH/webapps/project3.war

.........

以此类推,如果只有一个项目,则拷贝一个即可,建议<project1>名字同source名字一样,便于后续更新查找


(备注:war包会自动解压)【注意,看一下解压后的source目录的属主和权限,要用chown转成自己拥有】
cd /opt
chown -R xxx:xxx apache-tomcat-8.5.28/
cd /work/
chown -R xxx:xxx opengrok/

在浏览器中输入

http://localhost:8081/source/

http://localhost:8081/project1/

http://localhost:8081/project2/

......

就能看到网页已经正常显示了,但不能搜索出内容,因为还没有为项目建立索引。


5 建立索引

单个项目索引建立方法,不再说明,直接说明多个项目索引方法,如果只有一个项目按照下面的方法建一个就好了。


为了方便管理, 建立了一个 database (存放各项目src代码)和 opengrok_index(用于生成扫描后的index文件,初始为空即可) 二级目录。

root@ubuntu:/work/opengrok/database# ls

project1  project2  project3  project4 project5


#step1 删除源代码下面可能存在的".git",".svn"隐藏目录
$ cd OPENGROK_PATH/database/project1
$ find . -name .svn -print0 | xargs -0 rm -r -f
$ find . -name .git -print0 | xargs -0 rm -r -f
#step2 编译工具是没有必要的目录

$ rm -rf prebuilts developers development

注意,请务必删除源代码中的"prebuilts"目录,这个目录下面存储的是一系列的编译工具,在浏览代码的时候,完全用不上,但是占据的磁盘空间确是巨大的。

#step3 建立project1源码索引

cd OPENGROK_PATH/bin

sudo -s #输入root密码

export OPENGROK_INSTANCE_BASE="OPENGROK_PATH/opengrok_index/project1" #这是生成源码数据库文件的路径,非源码路径
export OPENGROK_WEBAPP_NAME="project1" #自定义webapp name
export OPENGROK_TOMCAT_BASE="/opt/apache-tomcat-8.5.28/" #改成自己的tomcat路径,TOMCAT_PATH,执行一次即可,不需要每次都执行
./OpenGrok deploy
./OpenGrok index OPENGROK_PATH/database/project1  #开始扫描源码所在路径

执行时间在40分钟左右,执行完成。开始扫描后,会在OPENGROK_INSTANCE_BASE路径下生成data和etc文件夹

生成的索引文件在"OPENGROK_PATH/opengrok_index/project1/data"目录下面,重建索引的时候需要执行如下操作,才能再次建立索引

Shell
$ rm -rf data etc
$ rm -rf log
$ rm -rf logging.properties

注意,如果服务器上面的内存比较有限,请使用如下命令进行内存限制,否则建立索引的时候,会触发内存不足的情况:
Shell
$export JAVA_OPTS="-Xmx1024m"

#step4 修改 OpenGrok配置文件
Shell
$cd TOMCAT_PATH/webapps/source/WEB-INF
$sudo vim web.xml

修改其中的
XHTML
<context-param>
    <param-name>CONFIGURATION</param-name>
    <param-value>/var/opengrok/etc/configuration.xml</param-value>
    <description>Full path to the configuration file where OpenGrok can read it's configuration</description>
</context-param>
    为
<context-param>
    <param-name>CONFIGURATION</param-name>
    <param-value>OPENGROK_PATH/opengrok_index/project1/etc/configuration.xml</param-value>
    <description>Full path to the configuration file where OpenGrok can read it's configuration</description>
</context-param>

修改完成后,重启tomcat,

cd TOMCAT_PATH/bin
sudo ./shutdown.sh
sudo ./startup.sh

刷新浏览器,可以看到 project1的源码可以搜索出来了。

http://localhost:8081/project1/


eg.

1.部署多个源码并扫描

cd OPENGROK_PATH/bin

sudo -s #输入root密码

export OPENGROK_INSTANCE_BASE="OPENGROK_PATH/opengrok_index/project1" #这是生成源码数据库文件的路径,非源码路径
export OPENGROK_WEBAPP_NAME="project1" #自定义webapp name
export OPENGROK_TOMCAT_BASE="/opt/apache-tomcat-8.5.28/"
./OpenGrok deploy
./OpenGrok index OPENGROK_PATH/database/project1

export OPENGROK_INSTANCE_BASE="OPENGROK_PATH/opengrok_index/project2"
export OPENGROK_WEBAPP_NAME="project2"
./OpenGrok deploy
./OpenGrok index OPENGROK_PATH/database/project2

export OPENGROK_INSTANCE_BASE="OPENGROK_PATH/opengrok_index/project3"
export OPENGROK_WEBAPP_NAME="project3" #自定义webapp name
./OpenGrok deploy
./OpenGrok index OPENGROK_PATH/database/project3

2.source.war分别重命名为project1.war, project2.war,拷贝至tomcat webapps目录

cp OPENGROK_PATH/lib/source.war TOMCAT_PATH/webapps/project1.war

cp OPENGROK_PATH/lib/source.war TOMCAT_PATH/webapps/project2.war

cp OPENGROK_PATH/lib/source.war TOMCAT_PATH/webapps/project3.war


于是,会自动生成project1,project2 , project3目录

3.修改每个project目录WEB-INF/web.xml
原始的web.xml里面,param-name为”CONFIGURATION”的配置项里,param-value的值为
“/var/opengrok/etc/configuration.xm”, 如下所示:

<param-name>CONFIGURATION</param-name>
<param-value>OPENGROK_PATH/opengrok_index/project1/etc/configuration.xml</param-value>

可以看到,OpenGrok默认寻找的index配置路径为/var/opengrok,因此,需要修改为我们的指定index路径

4.重启Tomcat

TOMCAT_PATH/bin
sudo ./shutdown.sh
sudo ./startup.sh


多项目索引的好处在于,可以分别搜索并且互不影响!

http://localhost:8081/source/

http://localhost:8081/project1/

http://localhost:8081/project2/


大功告成,OpenGrok安装搭建结束!

以上是我自己学习实践后总结记录的,方便下次使用。

感谢其他朋友的博客参考,

http://blog.youkuaiyun.com/luzhenrong45/article/details/52734781


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值