大家好,又见面了,我是你们的朋友全栈君。
OpenGrok的介绍
OpenGrok is a fast and usable source code search and cross reference engine. It helps you search, cross-reference and navigate your source tree. It understands various program file formats and history from many Source Code Management systems. In other words it lets you grok (profoundly understand) source code and is developed in the open, hence the name OpenGrok. It is written in Java.
OpenGrok的安装
前置环境
- Java运行环境至少是1.8以上
- 安装Java Web容器(classfish或tomcat8.x以上版本)
- 安装Universal ctags
Tomcat的安装
Tomcat8的下载 把下载的压缩包解压,并放到你喜欢的某个本地目录,如解压后的目录为
代码语言:javascript复制/Users/luogw/dev_tool/apache-tomcat-8.5.31 注:解压的文件默认没有执行权限的,需要对该目录的所有文件加上可执行权限
drwxr-xr-x@ 25 luogw staff 850 4 27 21:25 ./
drwxr-xr-x@ 13 luogw staff 442 4 27 21:26 ../
-rw-r--r--@ 1 luogw staff 34985 4 27 21:24 bootstrap.jar
-rw-r--r--@ 1 luogw staff 1703 4 27 21:24 catalina-tasks.xml
-rw-r--r--@ 1 luogw staff 15900 4 27 21:24 catalina.bat
-rw-r--r--@ 1 luogw staff 23463 4 27 21:25 catalina.sh
-rw-r--r--@ 1 luogw staff 207125 4 27 21:25 commons-daemon-native.tar.gz
-rw-r--r--@ 1 luogw staff 25145 4 27 21:24 commons-daemon.jar
-rw-r--r--@ 1 luogw staff 2040 4 27 21:24 configtest.bat
-rw-r--r--@ 1 luogw staff 1922 4 27 21:25 configtest.sh
-rw-r--r--@ 1 luogw staff 8509 4 27 21:25 daemon.sh
-rw-r--r--@ 1 luogw staff 2091 4 27 21:24 digest.bat
-rw-r--r--@ 1 luogw staff 1965 4 27 21:25 digest.sh
-rw-r--r--@ 1 luogw staff 3574 4 27 21:24 setclasspath.bat
-rw-r--r--@ 1 luogw staff 3680 4 27 21:25 setclasspath.sh
-rw-r--r--@ 1 luogw staff 2020 4 27 21:24 shutdown.bat
-rw-r--r--@ 1 luogw staff 1902 4 27 21:25 shutdown.sh
-rw-r--r--@ 1 luogw staff 2022 4 27 21:24 startup.bat
-rw-r--r--@ 1 luogw staff 1904 4 27 21:25 startup.sh
-rw-r--r--@ 1 luogw staff 49336 4 27 21:24 tomcat-juli.jar
-rw-r--r--@ 1 luogw staff 405109 4 27 21:25 tomcat-native.tar.gz
-rw-r--r--@ 1 luogw staff 4574 4 27 21:24 tool-wrapper.bat
-rw-r--r--@ 1 luogw staff 5483 4 27 21:25 tool-wrapper.sh
-rw-r--r--@ 1 luogw staff 2026 4 27 21:24 version.bat
-rw-r--r--@ 1 luogw staff 1908 4 27 21:25 version.sh
添加可执行权限
代码语言:javascript复制luogw@luogw-MacBook-Pro dev_tool$ chmod -R x apache-tomcat-8.5.31
# 启动Tomcat
luogw@luogw-MacBook-Pro dev_tool$ ./apache-tomcat-8.5.31/bin/startup.sh
Using CATALINA_BASE: /Users/luogw/dev_tool/apache-tomcat-8.5.31
Using CATALINA_HOME: /Users/luogw/dev_tool/apache-tomcat-8.5.31
Using CATALINA_TMPDIR: /Users/luogw/dev_tool/apache-tomcat-8.5.31/temp
Using JRE_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home
Using CLASSPATH: /Users/luogw/dev_tool/apache-tomcat-8.5.31/bin/bootstrap.jar:/Users/luogw/dev_tool/apache-tomcat-8.5.31/bin/tomcat-juli.jar
Tomcat started.
用浏览器打开 http://localhost:8080/ ,正常情况下看到所示页面,表明安装成功
在.bash_profile中添加如下启动与并闭的Tomcat的alias
代码语言:javascript复制# for tomcat
alias start_tomcat='${HOME}/dev_tool/apache-tomcat-8.5.31/bin/startup.sh'
alias close_tomcat='${HOME}/dev_tool/apache-tomcat-8.5.31/bin/shutdown.sh
Universal Ctags的安装
使用brew安装Ctags
代码语言:javascript复制brew install --HEAD universal-ctags/universal-ctags/universal-ctags
OpenGrok的安装
OpenGrok下载列表 下载对应的压缩包并解压,解压出来的目录放在你喜欢的某个目标即可,如我的解压目录位置是 /Users/luogw/dev_tool/opengrok-1.1-rc29
OpenGrok的使用实践
示例:搭建JDK源码的阅读环境
环境配置
在.bash_profile文件中添加如下环境变量的配置
代码语言:javascript复制# for tomcat
alias start_tomcat='${HOME}/dev_tool/apache-tomcat-8.5.31/bin/startup.sh'
alias close_tomcat='${HOME}/dev_tool/apache-tomcat-8.5.31/bin/shutdown.sh'
# for opengrok,实际目录位置视具体的情况更改
OPENGROK_INSTANCE_BASE=${HOME}/dev_tool/opengrok-1.1-rc29
export OPENGROK_INSTANCE_BASE
OPENGROK_TOMCAT_BASE=${HOME}/dev_tool/apache-tomcat-8.5.31
export OPENGROK_TOMCAT_BASE
OPENGROK_CTAGS=/usr/local/bin/ctags
export OPENGROK_CTAGS
OPENGROK_SRC_ROOT=${HOME}/personal/code
export OPENGROK_SRC_ROOT
OPENGROK_DATA_ROOT=${HOME}/personal/opengrok_index
export OPENGROK_DATA_ROOT
OPENGROK_VERBOSE=true
export OPENGROK_VERBOSE
alias opengrok='${HOME}/dev_tool/opengrok-1.1-rc29/bin/OpenGrok'
发布Web应用
代码语言:javascript复制luogw@luogw-MacBook-Pro opengrok_index$ opengrok deploy
Loading the default instance configuration ...
Installing /Users/luogw/dev_tool/opengrok-1.1-rc29/bin/../lib/source.war to /Users/luogw/dev_tool/apache-tomcat-8.5.31/webapps ...
Start your application server (Tomcat), if it is not already
running, or wait until it loads the just installed web application.
OpenGrok should be available on <HOST>:<PORT>/source
where HOST and PORT are configured in Tomcat.
生成索引
代码语言:javascript复制luogw@luogw-MacBook-Pro notes$ source ~/.bash_profile
luogw@luogw-MacBook-Pro notes$ opengrok index
Loading the default instance configuration ...
WARNING: OpenGrok generated etc path /Users/luogw/dev_tool/opengrok-1.1-rc29/etc doesn't exist Attempting to create generated etc directory ... Creating default /Users/luogw/dev_tool/opengrok-1.1-rc29/logging.properties ...
生成索引需要些时间…..
搜索代码
代码语言:javascript复制# 启动Tomcat
start_tomcat
# 浏览器打开链接 [http://localhost:8080/source/](http://localhost:8080/source/)
效果截图如下
参考资料
- opengrok官网
- 搭建大型源码阅读环境——使用 OpenGrok
- Ubuntu搭建OpenGrok环境阅读Linux内核源代码
- OpenGrok简单使用说明
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/141722.html原文链接:https://javaforall.cn