一、工具准备
apache-tomcat-9.0.64.tar.gz
下载地址:https://tomcat.apache.org/download-90.cgi
将其存放至/opt目录下
opengrok-1.3.16.tar.gz
下载地址:https://github.com/oracle/opengrok/releases/tag/1.3.16
将其存放至/opt目录下
universal-ctags
下载地址:git clone https://github.com/universal-ctags/ctags.git
二、安装依赖
1.安装openjdk8
运行环境需要大于等于jdk8的版本。
sudo apt-get install openjdk-8-jdk
2.安装universal-ctags
exuberant-ctags已经不再维护,对opengrok不友好。
从github上下载universal-ctags进行编译安装。
# 移除exuberant-ctags
sudo apt-get remove --purge exuberant-ctags
# 编译安装universal-ctags
tar -zxvf ctags.tar.gz
cd ctags/
./autogen.sh
./configure
make
sudo make install
三、安装Tomcat
解压并重命名
# 切换超级用户
sudo su
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://localhost:8080/
关闭服务器
cd /opt/tomcat/bin/
./shutdown.sh
四、安装OpenGrok
切换超级用户
解压安装
# 解压并重命名
cd /opt
tar -zxvf opengrok-1.3.16.tar.gz
rm opengrok-1.3.16.tar.gz
mv opengrok-1.3.16/ opengrok
五、Tomcat与OpenGrok关联及配置
查看webapps目录
ls -la /opt/tomcat/webapps
可以看到目录下并没有source目录。
文件复制
将opengrok的lib目录下的source.war文件,复制到tomcat的webapp目录下
cp /opt/opengrok/lib/source.war /opt/tomcat/webapps/
重启tomcat服务器
此时系统会自动在webapp目录下生成一个source目录。
cd /opt/tomcat/bin/
./startup.sh
./shutdown.sh
再次查看webapps目录
ls -la /opt/tomcat/webapps
可以发现新生成一个source目录。
删除source.war文件
rm -rf /opt/tomcat/webapps/source.war
建立相应的目录
# 该目录直接关联到源代码
mkdir -p /opt/opengrok/source
# 该目录存放源代码索引文件
mkdir -p /opt/opengrok/data
# 该目录存放后期代码同步的必须文件
mkdir -p /opt/opengrok/etc
配置环境变量
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
更新环境变量
source /etc/profile
建立源码仓库,并放入相关代
# 此目录根据实际情况建立
mkdir -p /mnt/work/SA6536A
通过软链接关联相关仓库
ln -s /mnt/work/SA6536A/ /opt/opengrok/source/
查看关联结果
ls -la /opt/opengrok/source/
生成索引文件和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
关联configuration.xml文件
将/var/opengrok/etc/configuration.xml路径替换为上一步新生成的/opt/opengrok/etc/configuration.xml
vim /opt/tomcat/webapps/source/WEB-INF/web.xml
至此,修改完成,重新启动tomcat。
cd /opt/tomcat/bin/
./startup.sh
启动tomcat服务器后,浏览器内输入http://localhost:8080/source便可使用opengrok搜索代码。
六、注意事项
1.如果本地安装过jenkins,8080端口可能会被jenkins占用,localhost:8080会跳转到jenkins登录界面,这时可以修改tomcat占用的端口
vim /opt/tomcat/conf/server.xml
将port修改为其他未被占用的端口,注意有多个类似的文本,不要修改错