背景:

安卓源码拥有庞大的代码量,我们通常是在linux坏境编译源码,仅通过命令行查看和分析源码,存在效率低和一定技术门槛的问题;
如果借助一些网络服务(如Samba),也可以使用Windows下功能强大的开发工具,但由于安卓源码量庞大又加上通过网络访问,所以像sourceinsight这些优秀的工具也会存在源码关键字搜索费时和使用卡顿问题,体验不好(如果代码是在本地,且电脑本身性能比较好的话,会改善很多)。

如何搭建openGrok?

通过openGrok在整个安卓源码里检索和跟踪代码也能达到秒响应,很适合作为分析大量代码量的项目。搭建openGrok流程,网上有很多技术博客有写,这里记录实际操作遇到的一些问题。
搭建openGrok主要涉及以下三个工具

  • universal-ctags:下载源码编译安装就行,源码下载需要翻墙,编译出现缺少的依赖,使用apt安装即可

  • tomcat:当前使用的linux环境(Linux version 5.15.0-72-generic (buildd@lcy02-amd64-035) (gcc (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #79-Ubuntu SMP Wed Apr 19 08:22:18 UTC 2023),可以通过apt安装tomcat9

  • openGrok:使用最新编译好的版本(1.12.8)出现"Couldn't notify the webapp on http://localhost:8080/source/: HTTP 404 Not Found"问题,导致opengrok.jar执行立即终止,
    Google到相关问题,openGrok从1.6.0开始,需要tomcat10以上版本,改用1.5.12后,解决404问题。

给openGrok添加访问验证功能后,出现"Couldn't notify the webapp on http://localhost:8080/source/: HTTP 401 Unauthorized"问题(不添加访问验证不会出现该报错),但opengrok.jar执行不会终止;

这个401的报错还不能确认是否对主要功能的使用有影响,执行opengrok.jar给整个安卓源码建立索引生成配置文件是个费时的操作,完成后才能验证,后面再补充...(工具使用未发现明显问题)

给openGrok添加访问验证功能的方法网上介绍的比较少,这里也记录一下,搭建openGrok,仅仅是把它当做一个工具来使用,它涉及的工具在技术层面没做研究;