搭建本地的源码查询服务器

日常要查源码,比如查到Activity里,想看下Activity的某个方法被谁调用了,有时Android Studio抽风没法继续查,有时你只知道一个方法名不知道是哪个类的,更不好查。http://androidxref.com/确实是个好地方,可需要"科学上网"才行,也比较麻烦。今天介绍一个在本地搭建服务器查代码的方案。

今天要讲的是一个叫opengrok的软件,需要和JDK、tomcat、ctags一起搭配使用,tomcat、ctags也可以使用其他同类工具替代,不过看网上大多数都是这个组合,官方介绍里也提到了tomcat,我就用的这个搭配。目前(2026.4.24)最新的opengrok https://github.com/oracle/opengrok 是1.14.11版本 https://github.com/oracle/opengrok/releases 。不过它现在支持的jdk版本最高只到 21,比较老的版本了。这个安装时要注意,不然运行起来会出错。

1、安装并配置JDK,包括配置环境变量,不多讲。

2、下载并配置Tomcat。也很简单,不过它同样也不支持最新的tomcat,只能使用10.x的版本。

3、下载并配置ctags。https://github.com/universal-ctags/ctags-win32/releases 也需要配置好环境变量path。

4、下载并配置opengrok。 https://github.com/oracle/opengrok/releases

不管是linux还是windows都是下载这个 tar.gz 包。下载完后解压出来,解压后是这样的

开始配置。

(1)创建一个目录(例如叫data)用来存放索引数据,再创建一个目录(例如叫source)存放你要待查询的源码。我要查找的是android framework的源码,已经下载好了,所以我没有新建源码目录。我的这两个目录就分别是 D:\Software\OpenGrokData 和 D:\Software\Android\androidSdk\sources\android-36 。

(2)把OpenGrok的 lib 目录下的 source.war 复制到 tomcat 的 webapps 下,然后启动tomcat(命令行执行 startup),tomcat会自动解压source.war,多出一个 source 目录。完成后关闭tomcat,删除source.war文件,以免白白占据空间。

(3)执行以下命令。注意:把路径换成自己的。

java -jar D:\Software\OpenGrokTar\lib\opengrok.jar ^

-W D:\Software\OpenGrokData\configuration.xml ^

-c D:\Software\Ctags\ctags.exe ^

-s D:\Software\Android\androidSdk\sources\android-36 ^

-d D:\Software\OpenGrokData ^

-P -S -v

静待执行完毕,如果卡住了,不要着急,它其实还在跑,不放心的话,可以按下回车键,可以看到一些最新消息打印。

(4)修改 D:\Software\tomcat\webapps\source\WEB-INF (找自己的路径) 下的 web.xml 文件,将里面的 context-param 改成如下 注意:还是要换成自己的路径

<context-param>

<param-name>CONFIGURATION</param-name>

<param-value>D:\Software\OpenGrokData\configuration.xml</param-value>

</context-param>

好了,搭建完成。可以用startup启动tomcat,然后访问下 http://localhost:8080/source/ 试试了,如果成功了,会是这个样子

相关推荐
Amnesia0_01 小时前
文件和fd,文件的内核级缓冲区,重定向
linux·运维·服务器
石油人单挑所有2 小时前
基于多设计模式下的同步&异步日志系统测试报告
服务器·c++·vscode·设计模式
学Linux的语莫2 小时前
langgraph实操
服务器·数据库·mysql
.千余2 小时前
【Linux】开发工具1
linux·运维·服务器·c语言·学习
Ops菜鸟(Xu JieHao)2 小时前
Linux Rear系统热备份 【详细教程】
linux·运维·服务器·linux备份·系统备份·rear·热备份
TBrL7UtdTELTTdut4BAL2 小时前
XG-140G-TF 极简 OpenWrt | 修复2.5G | NPU硬件加速
服务器·智能路由器·openwrt·光猫·xg-140g-tf
console.log('npc')2 小时前
多智能体协作自动化编排与拆解SKILL
运维·自动化
志栋智能2 小时前
超自动化安全:让安全防护从“有效”到“高效”
运维·网络·人工智能·安全·自动化