Ubuntu服务器搭建OpenGrok,阅读Android源码

OpenGrok 同时被 2 个专栏收录
1 篇文章 0 订阅
6 篇文章 0 订阅

OpenGrok是一个很好的阅读Android开源框架,通过在Linux服务器上搭建该框架,可以做到一处部署源码,多处阅读源码。

下文主要介绍在Ubuntu中搭建OpenGrok的具体步骤。

1、安装JDK环境

这块无需介绍,网上有很多的参考方法

2、安装Tomcat

参考Tomcat官网 https://tomcat.apache.org/

3、安装和配置ctags

这个很重要,它会直接决定OpenGrok的索引是否成功

(1)查看exuberant-ctags版本信息: dpkg -l exuberant-ctags

如果是5.9~svn20110310-11,则说明是比较老的版本,需要更新

先移除老的版本: sudo apt remove exuberant-ctags -y

(2)安装新的ctags

sudo apt install autoconf

cd /tmp

git clone https://github.com/universal-ctags/ctags

cd ctags

./autogen.sh

./configure --prefix=/opt/software/universal-ctags

make -j8 sudo make install

建立新编译安装的universal-ctags软链接:

sudo ln -s /opt/software/universal-ctags/bin/ctags /usr/bin/ctags

(3)配置ctags

set tags=tags;

set autochdir

cd /tmp

git clone --depth=1 https://github.com/amix/vimrc.git ~/.vim_runtime

sh ~/.vim_runtime/install_awesome_vimrc.sh

4、安装OpenGrok

(1)下载和解压OpenGrok: https://github.com/oracle/opengrok/releases/tag/1.1-rc36

在解压的目录下新建data和source 目录(这两个目录可以随意命名,后面配置成相应目录名的就可以了),然后将需要搜索的代码拷贝到source目录下(当然也可以不用拷贝,直接建立软链接即可,我个人比较倾向于建立软链接的方法,因为Android的源码那么庞大,如果用拷贝的方式会比较麻烦和冗余)

(2)将opengrok lib目录下的source.war文件拷贝到tomcat webapps目录下,然后重新运行tomcat 的startup.bat脚本;

这时会生成一个source文件夹,编辑source\WEB-INF\web.xml

最后验证是否配置好了,重新运行tomcat 的startup.bat脚本,打开浏览器,在地址栏输入:http://localhost:8080/source/

如果能够显示下述界面,就说明配置成功了

(3)建立源码的索引

将需要被引入的代码在opengrok-1.1-rc36/source中建立软链接,然后创建索引

sudo java -Djava.util.logging.config.file=/home/share/data/tools/OpenGrok2/opengrok-1.1-rc36/doc/logging.properties \
    -jar /home/share/data/tools/OpenGrok2/opengrok-1.1-rc36/lib/opengrok.jar \
    -c /usr/bin/ctags \
    -P -S -v -s /home/share/data/tools/OpenGrok2/opengrok-1.1-rc36/source/ -d /home/share/data/tools/OpenGrok2/opengrok-1.1-rc36/data -T 1 -H -P -S -G \
    -W /home/share/data/tools/OpenGrok2/opengrok-1.1-rc36/data/configuration.xml

创建索引会比较慢,过程中如下如下报错,可忽略

23:48:36 WARNING: Error from ctags: ctags: Warning: "--file-scope" option is obsolete; use "--extras=+F" instead
23:48:36 WARNING: Error from ctags: ctags: Non-alphanumeric char is used in kind name: 'case classes' in "--regex-scala" option
23:48:36 WARNING: Unexpected end of file!
23:48:36 WARNING: ctags exited with code: 1

耐心等待,如果代码比较多,有可能需要几天时间。

Good Luck To You!!!

 

 

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值