在Ubuntu 12.04.2 LTS上安装OpenGrok浏览Android源码

http://opengrok.github.io/OpenGrok/

OpenGrok is a fastand usable source code search and cross reference engine. It helps you search,cross-reference and navigate your source tree. It can understand variousprogram file formats and version control histories like Mercurial, Git, SCCS,RCS, CVS, Subversion, Teamware, ClearCase, Perforce, Monotone and Bazaar. Inother words it lets you grok (profoundly understand) source code and isdeveloped in the open, hence the name OpenGrok. It is written in Java.

 

  1. Install ctags

If you cannot run ctags command, install it.

apt-getinstall exuberant-ctags

 

  1. Install Tomcat

sudoapt-get install tomcat7 tomcat7-docs tomcat7-examples tomcat7-admin

/etc/init.d/tomcat7 restart

sudo vim /etc/tomcat7/tomcat-users.xml   // add below change password before </tomcat-users>

<role rolename="manager-gui"/>

<role rolename="admin-gui"/>

<user username="admin" password="root123" roles="manager-gui,admin-gui"/>

sudo /etc/init.d/tomcat7 restart

Directories:

/etc/tomcat7 - Global configurations

   /usr/share/tomcat7/ - Program

  /etc/tomcat7/Catalina/localhost/ - local Catalina configures

    /var/lib/tomcat7/ - tomcat home

  /var/lib/tomcat7/webapps - applications

  /var/lib/tomcat7/work - dynamic directory, such as dynamic compiled.jsp

 

 

Another way:

From http://tomcat.apache.org/ download Tomcat binary package. (apache-tomcat-7.0.42.tar.gz)

cd /opt

tar xvzf apache-tomcat-7.0.42.tar.gz

cd apache-tomcat-7.0.42/bin

./startup.sh     (use ./shutdown.sh to stoptomcat)

Visit: http://localhost:8080/

 

  1. Install OpenGrok

From http://opengrok.github.io/OpenGrok/  download binaray file (opengrok-0.11.1.tar.gz).

cd /opt

tarxvzf opengrok-0.11.1.tar.gz

ln -s opengrok-0.11.1   opengrok

copy /opt/opengrok/lib/source.war to  /var/lib/tomcat6/webapps  or /opt/apache-tomcat-7.0.42/webapps/)

Visit http://localhost:8080/source/to confirm OpenGrok is installed OK.

 

  1. Configure OpenGrok

add below line to /etc/profile.d/hansel.sh

exportOPENGROK_INSTANCE_BASE=/opt/opengrok

 

Modify /opt/apache-tomcat-7.0.42/webapps/source/WEB-INF/web.xml, change the path of opengrok.

<context-param> 

  <param-name>CONFIGURATION</param-name> 

   <param-value>/opt/opengrok/etc/configuration.xml</param-value> 

   <description>Full path to theconfiguration file where OpenGrok can read it'sconfiguration</description> 

 </context-param>

 

Setup password for using opengrok web page:

add role name to /etc/tomcat7/tomcat-users.xml

<rolerolename="opengrok"/>

<user username="opengrok" password="1234" roles="opengrok"/>

modify /var/lib/tomcat7/webapps/source/WEB-INF/web.xml, add below tothe bottom before "</web-app>":

  <security-constraint>

    <web-resource-collection>

      <web-resource-name>OpenGrokWeb</web-resource-name>

      <url-pattern>/*</url-pattern>

    </web-resource-collection>

    <auth-constraint>

      <role-name>opengrok</role-name>

    </auth-constraint>

  </security-constraint>

  <login-config>

   <auth-method>BASIC</auth-method>

   <realm-name>OpenGrok</realm-name>

  </login-config>

 

  1. Create Index of source code

cd /opt/opengrok

mkdir data src

cd src

ln -s  <your sourcecode>  <project name>

cd ../bin

OPENGROK_VERBOSE=true  ./OpenGrok index

chown tomcat7:tomcat7 * -R

 

  1. Create symbol link

To avoid OpenGrok complain about not found /var/opengrok/ when doindex using root.

mkdir -p /var/opengrok/etc/

ln -s /opt/opengrok/etc/configuration.xml/var/opengrok/etc/configuration.xml

 

  1. Update index automatically

add execute /opt/opengrok/bin/OpenGrok to system crontab.

sudo vim /etc/cron.daily/opengrok

#!/bin/sh

/opt/opengrok/bin/OpenGrokindex

sudo chmod +x /etc/cron.daily/opengrok


上文转自:http://blog.csdn.net/hansel/article/details/9798257


修改/opengrok/bin/OpenGrok


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 !

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值