Opengrok的安装及使用


Opengrok是一款配置非常方便的读代码工具。其便利性的最根本原因是它是基于web运行的,也就是说只要有一个web服务器,搭建好opengrok之后,你可以通过电脑或者手机的浏览器随时随地的看代码。

此外,它还有如下优点:
1. 可使用正则表达式搜索关键字;
2. 可方便的打开多个网页对照看代码,而不像vi或者source insight一样需要跳转,后退来查看;
3. 支持多种代码管理工具(git、svn等),可方便查看提交历史,提交diff,每行代码的提交SHA1。

当然,由于其便捷的访问方式,其缺点也是显而易见的:它不支持账号管理,任何知道服务器信息的人都可以通过链接查看代码。如果你的代码不愿意公开,那么你只能将其搭建于内部服务器上,然后通过v*n访问。

废话少说,先上两张截图来对其有一个直观的印象:
Opengrok的安装及使用

Opengrok的安装及使用

下面我们以ubuntu 上安装为例,来详细介绍Opengrok的安装及使用。
环境需求:
1. Ubuntu系统
2. python3执行环境

一、安装oracle java 8

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
sudo apt-get install oracle-java8-set-default

二、安装tomcat8

  1. 命令行安装

    sudo apt-get install tomcat8 -y

  2. 源码安装

   sudo add-apt-repository ppa:webupd8team/java
   sudo apt-get update
   sudo apt-get install oracle-java8-installer
   sudo apt-get install oracle-java8-set-default </code></pre>

三、安装opengrok

安装过程很简单,只需要将源码下载,然后解压即可。
下载地址为:https://github.com/oracle/opengrok/releases

sudo tar zxvf opengrok-1.1-rc36.tar.gz -C /opt
sudo mv /opt/opengrok-1.1-rc36 /opt/opengrok

四、配置opengrok

  1. 创建opengrok所需要的目录
cd /opt/opengrok
sudo mkdir -p /opt/opengrok/etc         # Opengrok配置文件目录
sudo mkdir -p /opt/opengrok/database/src     # 源代码目录
sudo mkdir -p /opt/opengrok/database/data     # Opengrok索引数据目录
  1. copy源码至Opengrok的src目录
sudo cp -rf /your/code/dir /opt/opengrok/database/src

注:请将***/your/code/dir***改为代码的实际路径

  1. 部署Opengrok
    sudo python3 bin/deploy.py -c etc/configuration.xml -D lib/source.war /var/lib/tomcat8/webapps
  1. 生成索引
    sudo python3 bin/indexer.py -C -J=-Djava.util.logging.config.file=/var/opengrok/logging.properties -a lib/opengrok.jar -- -s /opt/opengrok/database/src -d /opt/opengrok/database/data -H -P -S -G -W /opt/opengrok/etc/configuration.xml -U http://localhost:8080
  1. 修改配置文件的路径
    sudo vi /var/lib/tomcat8/webapps/source/WEB-INF/web.xml

修改Opengrok的config文件为真实的config文件路径:

10 <context-param>   
11 <description>Full path to the configuration file where OpenGrok can read its configuration</description>
12 <param-name>CONFIGURATION</param-name>
13 <param-value>/opt/opengrok/etc/configuration.xml</param-value>
14 </context-param>
  1. 重启tomcat service
    sudo service tomcat8 restart 

五、卸载Opengrok

  1. 停止tomcat服务

    sudo service tomcat8 stop
    
  2. 卸载tomcat并删除所有配置文件

    sudo apt-get --purge remove tomcat8 -y
    sudo rm -rf /var/lib/tomcat8/
    
  3. 删除Opengrok的配置文件及相关数据

    sudo rm -rf /opt/opengrok/etc/configuration.xml /opt/opengrok/database 
    

六、常见问题

  1. 如何更新索引数据
    更新索引数据和生成索引的方法是一样的,命令如下:
sudo python3 bin/indexer.py -C -J=-Djava.util.logging.config.file=/var/opengrok/logging.properties -a lib/opengrok.jar -- -s /opt/opengrok/database/src -d /opt/opengrok/database/data -H -P -S -G -W /opt/opengrok/etc/configuration.xml -U http://localhost:8080 

在更新完之后,最好重启一下tomcat:

    sudo service tomcat8 restart
  1. 如何重装Opengrok
    很多时候会碰到一些莫名其妙的错误,如果实在没有办法解决,就只有重装Opengrok了。重装的时候务必按照五、卸载Opengrok里写的方法保证所有的配置文件都删除干净,然后重新执行四、配置opengrok的步骤即可。

  2. 如何配置多套代码
    多套代码的配置很简单,只需要将每套代码各自单独放在一个目录里,然后放到Opengrok的源代码目录中,然后重新生成索引即可。例如,有两套代码_/path1/source_code1, /path2/source_code2_,对于上述配置,只需要执行下列命令,然后重新索引代码即可:

    sudo cp -rf /path1/source_code1 /opt/opengrok/database/src
    sudo cp -rf /path2/source_code2 /opt/opengrok/database/src
    

七、更多帮助

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


想第一时间查看我的文章吗?请关注我的微信公众号号,搜索“落木萧萧技术论坛”或登陆我的个人博客:www.luomuxiaoxiao.com,更多精彩文章等你。

Opengrok的安装及使用