• Ubuntu18.04搭建OpenGrok代码搜索工具


    一、工具准备

    1. apache-tomcat-9.0.64.tar.gz

      下载地址:https://tomcat.apache.org/download-90.cgi

      将其存放至/opt目录下

    2. opengrok-1.3.16.tar.gz

      下载地址:https://github.com/oracle/opengrok/releases/tag/1.3.16

      将其存放至/opt目录下

    3. ctags

      下载地址:git clone https://github.com/universal-ctags/ctags.git

    二、安装依赖

    1. openjdk8

      sudo apt-get install openjdk-8-jdk
      
      • 1
    2. 安装ctag

      # 移除exuberant-ctags
      sudo apt-get remove --purge exuberant-ctags
      # 编译安装
      tar -zxvf ctags.tar.gz
      cd ctags/
      ./autogen.sh
      ./configure 
      make
      sudo make install
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9

    三、apache-tomcat安装

    # 切换超级用户
    # 解压并重命名
    cd /opt
    tar -zxf apache-tomcat-9.0.64.tar.gz
    rm apache-tomcat-9.0.64.tar.gz
    mv apache-tomcat-9.0.64/ tomcat
    # 启动服务器
    cd /opt/tomcat/bin/
    ./startup.sh
    # 同网络下浏览器输入主机IP,若成功打开网页则服务器安装成功
    http://192.168.2.222:8080/
    # 关闭服务器
    cd /opt/tomcat/bin/
    ./shutdown.sh
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    四、安装OpenGrok

    # 切换超级用户
    # 解压并重命名
    cd /opt
    tar -zxf opengrok-1.3.16.tar.gz
    rm opengrok-1.3.16.tar.gz
    mv opengrok-1.3.16/ opengrok
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    五、tomcat与opengrok关联配置

    1. 查看webapps目录

      ls -al /opt/tomcat/webapps
      
      • 1

      目录查看

    2. 文件复制
      将opengrok的lib目录下的source.war文件,复制到tomcat的webapp目录下

      cp /opt/opengrok/lib/source.war /opt/tomcat/webapps/
      
      • 1
    3. 重启tomcat服务器
      此时系统会自动在webapp目录下生成一个source目录

      cd /opt/tomcat/bin/
      ./startup.sh
      ./shutdown.sh
      
      • 1
      • 2
      • 3
    4. 再次查看webapps目录

      ls -al /opt/tomcat/webapps
      
      • 1

      目录查看可以发现新生成一个source目录

    5. 删除source.war文件

      rm -Rf /opt/tomcat/webapps/source.war
      
      • 1
    6. 建立相应的目录

      # 该目录直接关联到源代码
      mkdir -p /opt/opengrok/source
      # 该目录存放源代码索引文件
      mkdir -p /opt/opengrok/data
      # 该目录存放后期代码同步的必须文件
      mkdir -p /opt/opengrok/etc
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
    7. 配置环境变量

      vim /etc/profile
      #添加如下变量
      export OPENGROK_TOMCAT_BASE=/opt/tomcat
      export CATALINA_HOME=/opt/tomcat
      export OPENGROK_APP_SERVER=Tomcat
      export OPENGROK_INSTANCE_BASE=/opt/opengrok
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
    8. 更新环境变量

      source /etc/profile
      
      • 1
    9. 建立源码仓库,并放入相关代码

      mkdir -p /home2/jerry/test
      
      • 1
    10. 通过软链接关联相关仓库

    	ln -s /home2/jerry/test/Android4.4/ /opt/opengrok/source/
    	ln -s /home2/jerry/test/Android9.0/ /opt/opengrok/source/
    
    • 1
    • 2
    1. 查看关联结果
    	ls -al /opt/opengrok/source/
    
    • 1
    1. 生成索引文件和configuration.xml文件
      上一步虽然让opengrok与源代码目录关联起来,但是opengrok不可能直接跳转到源代码目录去查找目标代码,还缺少源代码索引文件。并且索引文件还可以大大缩减了代码检索时间。下一步就是创建源代码索引文件,创建命令如下(注意在root用户下执行):
    	cd /opt/opengrok/
    	java -jar /opt/opengrok/lib/opengrok.jar -P -S -v -s /opt/opengrok/source -d /opt/opengrok/data -i d:.git -i d:.repo -i d:out -W /opt/opengrok/etc/configuration.xml
    
    • 1
    • 2
    1. 关联configuration.xml文件
      将/var/opengrok/etc/configuration.xml路径替换为上一步新生成的/opt/opengrok/etc/configuration.xml
      vim /opt/tomcat/webapps/source/WEB-INF/web.xml
      
      • 1

    至此,启动tomcat服务器后,浏览器内输入http://192.168.2.222:8080/source便可适用opengrok搜索代码。

    六、tomcat开机设置

    cp /opt/tomcat/bin/catalina.sh /etc/init.d/tomcat
    vim /etc/init.d/tomcat
    
    • 1
    • 2

    添加以下代码:

    ### BEGIN INIT INFO
    # Provides:          tomcat
    # Required-Start:    $remote_fs $network
    # Required-Stop:    $remote_fs $network
    # Default-Start:    2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: The tomcat Java Application Server
    ### END INIT INFO
    
    CATALINA_HOME=/opt/tomcat
    JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    如下图:
    tomcat配置
    注意BEGIN INIT INFO和END INIT INFO之间的内容需要添加。
    更新tomcat启动项及服务器开启:

    update-rc.d -f tomcat defaults
    service tomcat start
    service tomcat stop
    service tomcat status
    service tomcat start
    
    • 1
    • 2
    • 3
    • 4
    • 5

    七、浏览器验证

    浏览器内输入http://192.168.2.222:8080/source便可适用opengrok搜索代码。
    代码搜索

    八、其它

    1. 上文提到的IP地址192.168.2.222为服务器的主机地址,通过ifconfig查看。
    2. 在生成索引文件时,如果产生以下警告,则无需关心:
      警告: Error from ctags: ctags: Warning: Don't reuse the kind letter 等错误无需关注
      在这里插入图片描述
  • 相关阅读:
    掌握音视频转换的艺术:用FFmpeg解锁多媒体的无限可能
    格物云设备接入-MQTT方式
    python快速入手
    【Netty】九、Netty自定义协议
    [题] 快速排序 #分治
    Spring Boot
    操作系统之文件管理
    FPGA高端项目:图像缩放+GTX+UDP架构,高速接口以太网视频传输,提供2套工程源码加QT上位机源码和技术支持
    C语言:贪吃蛇游戏(万字解读超详细)
    科技云报道荣膺全球云计算大会“云鼎奖”2013-2022十周年特别贡献奖
  • 原文地址:https://blog.csdn.net/Amosstan/article/details/125552496