OpenGrok源代码索引系统搭建

OpenGrok源代码索引系统搭建

系统环境

  • Ubuntu20.04.1 LTS
  • jdk1.8
  • Tomcat9.0.37
  • OpenGrok-0.12.1.5 (stable)

环境安装与配置

  • 1)java version 1.8
//下载jdk1.8的包
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm

//安装工具
sudo apt install alien

//用alien将rpm转换成deb包,dpkg安装
sudo apt install alien
fakeroot alien jdk-8u131-linux-x64.rpm
sudo dpkg -i jdk1.8.0-131_1.8.0131-1_amd64.deb

//在/etc/profile下添加环境变量
vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_131
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

//令环境变量生效
source /etc/profile

//此时输入java -version就可以查看到jdk信息了
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
  • 2)Tomcat 9
//首先下载压缩包
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://ftp.mirror.tw/pub/apache/tomcat/tomcat-9/v9.0.37/bin/apache-tomcat-9.0.37.tar.gz

//解压到/usr/tomcat路径下
sudo mkdir /usr/tomcat
sudo tar -zxvf apache-tomcat-9.0.37.tar.gz -C /usr/tomcat/
cd /usr/tomcat/apache-tomcat-9.0.37/
chmod 777 * -R

//将weapps目录下的文件全部清空
cd /usr/tomcat/apache-tomcat-9.0.37/webapps/
sudo rm -rf *
  • 3)Exuberant Ctags工具
//安装ctags工具
sudo apt-get install exuberant-ctags

搭建Opengrok

  • 1)下载Opengrok包
//下载压缩包
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" https://github.com/OpenGrok/OpenGrok/files/213268/opengrok-0.12.1.5.tar.gz
  • 2)解压并创建索引目录和源代码存放目录
//-C 后面跟着的是解压到的目标路径,这里一个“/”代表根目录
sudo tar -zxvf opengrok-0.12.1.5.tar.gz -C /
//src用于存放源代码 
sudo mkdir /opengrok-0.12.1.5/src
//data用于存放索引文件
sudo mkdir /opengrok-0.12.1.5/data
  • 3)修改OpenGrok的配置文件
vi /opengrok-0.12.1.5/bin/OpenGrok
// 找到以下3个地方分别作修改
//修改opengrok的安装路径
OPENGROK_INSTANCE_BASE="${OPENGROK_INSTANCE_BASE:-/opengrok-0.12.1.5}"

//增加tomcat/webapps的路径
    if [    -d "/var/tomcat6/webapps"        
         -o -d "/var/lib/tomcat6/webapps"    
         -o -d "/var/lib/tomcat7/webapps"    
         -o -d "/var/lib/tomcat8/webapps"    
         -o -d "/usr/tomcat/apache-tomcat-9.0.37/webapps"    
       ]
    then
        echo "Tomcat"
        return
//增加tomcat的路径
    for prefix in               
        ${OPENGROK_TOMCAT_BASE} 
        /var/tomcat6            
        /var/lib/tomcat6        
        /var/lib/tomcat7	 
        /usr/tomcat/apache-tomcat-9.0.37
  • 4)使用命令生成索引
//使用下面的命令会识别opengrok/src下的目录仓库,并在/opengrok-0.12.1.5/etc/下生成一个configuration.xml文件
/opengrok-0.12.1.5/bin/OpenGrok index
  • 5)将opengrok资源文件部署到tomcat上
//使用下面的命令会将/opengrok-0.12.1.5/lib/source.war文件拷贝到/usr/tomcat/webapps目录下。
//tomcat会自动解压war文件并自动修改web.xml文件,但是实测好像并没有修改,手动修改方法见下
/opengrok-0.12.1.5/bin/OpenGrok deploy

//手动修改tomcat中webapps/source/WEN-INF下的web.xml文件
//这里仅修改param-value属性值,使之指向上一步生成的configuration.xml文件路径
vi /usr/tomcat/apache-tomcat-9.0.37/webapps/source/WEN-INF/web.xml

  <display-name>OpenGrok</display-name>
  <description>A wicked fast source browser</description>
  <context-param>
    <param-name>CONFIGURATION</param-name>
    <param-value>/opengrok-0.12.1.5/etc/configuration.xml</param-value>
    <description>Full path to the configuration file where OpenGrok can read it's configuration</description>
  </context-param>
  • 6)开启Tomcat服务,在浏览器中输入http://localhost:8080/source/ 就可以愉快的使用系统啦。
//开启服务
cd usr/tomcat/apache-tomcat-9.0.37/bin
./startup.sh
//如果要关闭服务
./shutdown.sh

Some Tips

  • 1)端口号可以在/usr/tomcat/apache-tomcat-9.0.37/conf/server.xml中修改,因为Linux的保护机制,如果是1024以下的端口需要root权限才能开启
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
  • 2)可以将source文件名修改成你想要的名字,但是要注意在deploy后要删除webapps下的war文件,因为如果修改文件名后,tomcat会重新解压一份名为source的网站资源文件。
  • 3)中间如果有走不通的地方多半是因为权限问题,要么在命令前加sudo,要么进入要对其操作的文件的文件目录,修改权限
chmod 777  * -R  
  • 4)源代码管理
    Android源码巨大,要将其拷贝到src目录下极为不方便,也不利于后续的管理维护。可以利用软链接的方式解决这个问题。
cd /opengrok-12.0.1.5/
ln -s [项目源码绝对路径] src/

-5)在每次需要添加或删除或修改项目时,需要重新生成一次索引文件。但是如果是在项目内部进行开发修改代码则不需要。

/opengrok-0.12.1.5/bin/OpenGrok update

//也可以为每个项目单独更新索引
/opengrok-0.12.1.5/bin/OpenGrok indexpart /opengrok-0.12.1.5/src/projectname 

以下为效果图:

原文地址:https://www.cnblogs.com/lzhkami/p/13657170.html