轉載自http://blog.youkuaiyun.com/jinzhuojun/article/details/53456196
Ubuntu 16.04
$ sudo apt-get install exuberant-ctags tomcat8
$ sudo /etc/init.d/tomcat8 restart
輸入 http://localhost:8080/

Download opengrok
https://github.com/OpenGrok/OpenGrok/releases下载OpenGrok
deploy OpenGrok
OpenGrok提供了现成的脚本。首先到前面解压后的目录,运行以下命令。其中环境变量OPENGROK_TOMCAT_BASE为tomcat所在路径(tomcat7貌似脚本自己能找到,tomcat8自动找不到,所以手動指定)。
$ sudo OPENGROK_TOMCAT_BASE=/var/lib/tomcat8 ./OpenGrok deploy
这步之后浏览器打开http://localhost:8080/source/,应该能看到下面的页面,但现在是空的。

- 生成索引
用下面命令生成代码索引。假如代码在/home/jzj/source/android/7.1下的话:
$ sudo ./OpenGrok index /home/jzj/source/android/7.1/
等结束后打开http://localhost:8080/source/,就能浏览代码了。

------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------
NOTE:我只修改下面這行(vi ./OpenGrok)
103行:将OPENGROK_INSTANCE_BASE改为你放置opengrok的目录,例如我的是/opt/opengrok,那么这里就是
OPENGROK_INSTANCE_BASE="${OPENGROK_INSTANCE_BASE:-
/opt/opengrok}"
============================================================================================================
這是一套用來查找code的軟體,是web-based的
OpenGrok
download
opengrok-0.11.1.tar.gz
首先是安装Tomcat6和ctags以及Ant,这些都可以用apt-get或者yum安装的,当然自己编译也可以,但是主要的是记住tomcat6的几个路径:
tomcat6的配置文件:/etc/tomcat6/server.xml 用于修改tomcat6的端口等配置
tomcat6的基础目录:/usr/share/tomcat6,其中包含可执行程序目录./bin, 用到的库文件和jar文件目录./lib,配置文件目录./conf,webapps目录,默认的容器目录,所有生成的jsp文件都可以在这个目录中找到。
启动tomcat6,可以以根用户权限执行/usr/share/tomcat6/bin/startup.sh或者service tomcat6 start
如果能返回默认的欢迎界面则表示启动成功。
-----------------------------------------------------------
然后就是安装OpenGrok,依然可以使用apt-get或者yum,但是感觉不是很方便,还是直接下载bin包来得方便些:
然后将其解压到/opt目录下,个人爱好,如果需要浏览的代码很多并且有增大的趋势,可以放到/var目录下
cd /opt ( 或者 cd /var)
根用户执行
tar xvzf opengrok-0.10.tar.gz
cd opengrok
在此目录下创建src子目录,用于放置你的源代码
cd bin
vi ./OpenGrok
修改:
103行:将OPENGROK_INSTANCE_BASE改为你放置opengrok的目录,例如我的是/opt/opengrok,那么这里就是
OPENGROK_INSTANCE_BASE="${OPENGROK_INSTANCE_BASE:-
/opt/opengrok}"
126行:SRC_ROOT="${OPENGROK_INSTANCE_BASE}/src"将SRC_ROOT改为你的src路径,可以是相对路径或者绝对路径,因为我们上面将src目录创建于opengrok目录下,也就是OPENGROK_INSTANCE_BASE,所以无须修改。
131行:DATA_ROOT="${OPENGROK_INSTANCE_BASE}/data"以及后面的
PATH_DESC="${OPENGROK_INSTANCE_BASE}/etc/paths.tsv"和
XML_CONFIGURATION="${OPENGROK_INSTANCE_BASE}/etc/configuration.xml"
无须手动创建,如果不存在,opengrok会自动创建(参见601行CreateRuntimeRequirements函数)
349行: Linux:*) commandName="ctags" ;;
因为linux下默认的是ctags,不是ctags-ex~
376行:将你的jvm目录的路径添加进去
434行:加入你的tomcat6的webapps目录,本机是/usr/share/tomcat6/webapps,也可能是/var/lib/tomcat6/webapps,根据tomcat6的具体安装路径选择
修改完成后,根用户权限执行:
OpenGrok deploy
一般情况下,此时应该不会出错了,打印指导信息,启动tomcat6,然后输入:
http://127.0.0.1:8080/source就可以看到OpenGrok的默认主页了,如果还是出错,根据具体说明排查,一般都可以通过vi OpenGrok得到解决
然后将你需要浏览的代码拷贝到
Opengrok安装路径下的src目录中,根权限执行:
OpenGrok index
如果代码不是很多的话,很快就可以索引结束,刷新OpenGrok的默认主页就可以看到右边的项目选择框了。
如果你的代码是从svn上下载的,或者代码中有不符合规范的xml文件的话会报错:
10:09:53 SEVERE: An error occurred while parsing the xml output
org.xml.sax.SAXParseException: XML document structures must start and end within the same entity.
或者:
10:09:53 WARNING: An error occured while creating cache for /var/opengrok/src/vss2 (SubversionRepository)
或者:
11:02:21 WARNING: An error occurred while reading history:
org.opensolaris.opengrok.history.HistoryException: Failed to get history for: "/var/opengrok/src/vss2/APICommonCode/SDPSourceInfo.cpp" Exit code: 1
忽略即可,不影响使用。
Enjoy !