OpenGrok官方指导文档:https://github.com/oracle/opengrok/wiki/How-to-setup-OpenGrok
配置要求:
java:OpenJDK21U-jdk_x64_windows_hotspot_21.0.9_10.msi
opengrok:opengrok-1.14.4.tar.gz
ctag:ctags-p6.2..0-x64.zip
tomcat:apache-tomcat-10.1.49-windows-x64.zip
注意:按照指定版本安装会少走能多弯路,链接地址也一并附上,直戳下载。
官 网 要 求:
Java from 17 to 21
OpenGrok 最新版本
Tomcat 要求10.x
这里要依次安装java、tomcat、ctags、opengrok软件并配置环境变量。
1.2.1 安装Java 21
(1)安装完JDK后,新增系统变量JAVA_HOME,在Path系统变量中,添加:

(2)查看Java版本:。这里如下显示即正常。

1.2.2安装Tomcat
(1) 确认Tomcat是否和Java版本适配。当前OpenGrok要求10.x,JDK 21是满足要求的。

(2)将下载的Tomcat压缩包解压后,新增系统变量CATALINA_HOME,在Path系统变量中,添加:“%CATALINA_HOME%”

(3)查看Tomcat是否可以正常运行。
在tomcat安装目录的bin文件夹中,双击运行脚本启动Tomcat,在浏览器中打开 http://localhost:8080/,浏览器如下显示即正常。

1.2.3 安装Ctags
(1)将下载的ctags.exe压缩包解压后
(2)查看ctags版本:ctages –version。这里如下显示即正常。

1.2.4 安装OpenGrok
(1)下载最新版本的OpenGrok,https://github.com/OpenGrok/OpenGrok/releases ,解压即安装。
(2)在OpenGrok目录下,新建data和source两个文件夹,source目录用于放需要浏览的源码,data目录用于放置opengrok生成的索引数据。另外。也可以新建etc目录,用于放configuration.xml文件;
1、将源码拷贝到source文件中。
2、创建源码索引,让索引器生成配置文件,通知web应用更新索引。
在CMD命令窗口执行如下命令:
或者使用opengrok-indexer索引器:
3、将opengrok安装目录libsource.war文件,复制到tomcat安装目录webapps目录下,重新运行tomcat后,会将source.war文件自动解压出一个同名的新目录中。
4、打开tomcat安装目录webappssourceWEB-INFweb.xml文件,找到”CONFIGURATION”,修改为索引器生成的configuration.xml文件的绝对路径。

使用Tomcat的安装目录中的startup.bat脚本,启动Tomcat服务器可以启动OpenGrok。下面提供了快捷启动脚本,简单修改后即可。
快速启动脚本
最后,使用http://localhost:8080/source,即可打开OpenGrok阅读源码。
参数说明:
/J 创建目录联接。
/D 创建目录符号链接。默认为文件符号链接。目录符号链接可以用于远程主机访问,但是目录联结只能处理本地的访问。
目录符号链接可以在资源管理器里面复制、剪切,但是目录联结不行,如果你试图复制或移动目录联接,会把真实的文件夹内容复制或移动过去。(从这点上说,目录符号链接更接近于 Linux 的软链接。)
创建目录符号链接必须要有管理员权限,而目录联结不用。
2、检查软链接
(1)Tomcat启动乱码

根因:由于编码不一致引起的,Tomcat启动后默认编码UTF-8,而Windows的默认编码是GBK。因此要使其不乱码,只需配置apache-tomcat-8.5.54conflogging.properties的编码格式即可。

(2)索引生成失败
Java环境配置错误:OpenGrok依赖特定版本的JDK。
源代码路径配置错误:指定的源码目录不存在或权限不足。
Tomcat或其他Web服务器配置不当:端口冲突或部署路径错误。
配置文件(如 opengrok.xml)设置有误:数据库类型或连接参数不符合要求。
索引工具(CTags 或 Exuberant CTags)缺失或版本不兼容。
(3)上下文路径[/source]下,应用程序无法启动
无法启动一个应用时,在XX omcatlogscatalina.YYYY-MM-dd.log日志中能看到如下信息:
但是还是不足已支撑问题解决。在tomcatwebappsProjectNameWEB-INFclasses目录下,新建一个日志配置文件:,添加内容为:
再次启动项目,查看catalina.out文件的时候,就可以看到具体的信息了。

当然,看到这里的报错信息,是tomcat在配置应用程序监听器的时候,出现没有找到ServletContextListener报错,大概能猜出来这是tomcat的问题,我们可以换个新版本的tomcat重新试试。
OpenGrok官方指导文档:https://github.com/oracle/opengrok/wiki/How-to-setup-OpenGrok
配置要求:
java:OpenJDK21U-jdk_x64_linux_hotspot_21.0.9_10.tar.gz
opengrok:opengrok-1.14.4.tar.gz
ctag:uctags-2025.11.19-linux-x86_64.release.tar.gz
tomcat:apache-tomcat-10.1.50.tar.gz
在安装之前,需要将下载好的文件上传到linux服务器,这里使用SCP工具,SCP(Secure Copy)是基于 SSH 协议的安全文件传输工具,无需额外安装,Linux/macOS 系统默认支持,Windows 10/11 也内置了 OpenSSH 客户端。Grok 教程
2.2.1 安装Java 21
方式一:
方式二:SDKMAN! 可以管理多个版本的Java以及其他SDK。
方式三:
2.2.2 安装Tomcat
(1)确认Tomcat是否和Java版本适配。当前OpenGrok要求10.x,JDK 21是满足要求的。
(2)将下载的Tomcat压缩包解压即安装。这里安装到/programs/目录下。
(3)查看Tomcat是否可以正常运行。
在终端中进入tomcat安装目录/bin文件夹中,执行 脚本启动Tomcat。

在浏览器中打开 http://localhost:8080/,浏览器如下显示即正常。

1.2.3 安装Ctags
(1)将下载的ctags.exe压缩包,https://github.com/universal-ctags/ctags-nightly-build/releases,解压即安装。
另外:若不能正常安装解压缩包,可以试试直接安装:
(2)查看ctags版本: ,这里显示ctags的版本信息,则表明它已成功安装。

1.2.4 安装OpenGrok
(1)下载最新版本的OpenGrok,https://github.com/OpenGrok/OpenGrok/releases ,解压即安装。
(2)在OpenGrok目录下,新建5个文件夹:
- data目录用于放置opengrok生成的索引数据。
- src目录用于放需要浏览的源码。
- etc目录用于放configuration.xml,logging.properties的配置文件。
(3)解压OpenGrok文件到dist目录下。
(4)配置log文件(可选项)

2.3.1 部署 web 应用程序
(1)将opengrok安装目录/dist/lib/source.war文件,复制到tomcat安装目录/webapps/目录下,重新运行tomcat后,会将source.war文件自动解压出一个同名的新目录中。
(2)打开tomcat安装目录/webapps/source/WEB-INF/web.xml文件,找到”CONFIGURATION”,修改为索引器生成的configuration.xml文件的绝对路径。

这个“configuration.xml”配置文件是由索引程序指定“-W” 的时候生成的,在启动web应用时会去读取这个配置文件, 这就保持配置文件持久化。
2.3.2 建立源码索引
1、将源码拷贝到src文件中。
这里建议按照软连接的方式,在src目录中只放置源码的软连接即可。
2、创建源码索引,让索引器生成配置文件,通知web应用更新索引。
进入Tomcat安装目录/bin,在终端中执行 脚本启动Tomcat。下面提供了快捷启动脚本,简单修改后即可。
快速启动脚本
在任意目录下创建此脚本,修改为自己的tomcat路径后,授权给此脚本,在使用时直接运行即可。
最后,使用http://localhost:8080/source,即可打开OpenGrok阅读源码。
1、在opengrok的源码文件中,创建项目源码软连接
2、检查软链接

note:如果要删除软连接,执行 。
3、重新索引
增量更新:当项目源码有更新时,参考2.3.2重新执行一次索引命令,OpenGrok会自动进行增量更新。
添加新项目:将新项目目录或链接放入“源码根目录”,参考2.3.2重新执行索引命令。
(1)OutOfMemoryError: Java heap space
linux-6.17.8构建源码索引时,出现java.lang.OutOfMemoryError: Java heap space…。根因是内存空间不足导致OOM。

解决方案:增加至:
同理,aosp创建索引时,需要增加至:
(2)索引中断
报错信息:Index in ‘XXX’ is dirty, the last indexing was likely interrupted. It might be worthwhile to reindex from scratch.

解决方案:清理data目录中上次生成的索引数据,重新生成即可。
(3)索引中断
报错信息:06:08:19 警告: Could not create repository for ‘/programs/opengrok/src/aosp/android-14.0.0_r13’: ‘/programs/opengrok/src/aosp/android-14.0.0_r13’ is prohibited symlink

解决方案: 这个可能与软连接的文件路径有关系,在配置多项目时,需要将多项目的根路径存储在src下面,不能在src下面新增目录/项目的根目录/…
OpenGrok官方指导文档:https://github.com/oracle/opengrok/wiki/How-to-setup-OpenGrok
配置要求:
java:OpenJDK21U-jdk_aarch64_linux_hotspot_21.0.10_7.tar.gz
opengrok:opengrok-1.14.4.tar.gz
ctag:uctags-2026.02.12-linux-aarch64.release.tar.gz
tomcat:apache-tomcat-10.1.50.tar.gz

nas部署opengrok时,只有java和ctag要使用ARM版本的软件,其他的和Ubuntu24的安装方式一摸一样。
发布者:Ai探索者,转载请注明出处:https://javaforall.net/245303.html原文链接:https://javaforall.net
