wsl + opengrok 部署
# 【安全前提】更新 APT 包索引确保后续安装使用最新元数据必需步骤sudoaptupdate# 【关键依赖】安装 OpenJDK 21 JRE/JDK注意Ubuntu 20.04 官方源默认不提供 openjdk-21-jdk# 需提前配置第三方源如 Azul Zulu 或 PPA或手动安装 ARM64 版本否则此命令将失败sudoaptinstallopenjdk-21-jdk# 【架构校验】检查 Java 可执行文件是否存在 —— ⚠️ WARNING/usr/lib/jvm/java-21-openjdk-amd64 是 x86_64 路径# 当前系统为 arm64Cortex-A53该路径在本机**一定不存在**必须替换为 ARM64 对应路径如 java-21-openjdk-arm64ls/usr/lib/jvm/java-21-openjdk-amd64/bin/java# 【部署验证】确认 OpenGrok 发行版 source.war 已正确解压并存在Tomcat WebApp 核心包ls-l~/opengrok-1.14.10/lib/source.war# 【索引构建】后台启动 OpenGrok 索引器opengrok.jar# -Xmx20g分配最大 20GB 堆内存 → ⚠️ 当前系统仅 3.75GB RAM此参数将导致 OOM 或启动失败必须下调至 -Xmx1g 或更低# -i d:xxx忽略指定目录加速索引合理# -s ~/android13-r44指定源码根目录需确保该路径存在且可读# -d ~/opengrok_data索引数据存储目录自动创建建议提前 mkdir -p ~/opengrok_data# -c /usr/bin/ctags指定 ctags 路径需已安装 exuberant-ctags 或 universal-ctags# -W ~/opengrok_data/configuration.xml生成/覆盖配置文件关键后续 Tomcat 依赖此路径# -P -S -G -v启用项目识别、符号搜索、Git 集成、详细日志# ...log 21 全量日志重定向并后台运行便于排错# PS:生成索引的命令 一定要放到源码路径下执行哦nohup/usr/lib/jvm/java-21-openjdk-amd64/bin/java-Xmx20g-jar~/opengrok-1.14.10/lib/opengrok.jar\-id:out-id:.repo-id:.git-id:prebuilts-id:build\-s~/android13-r44\-d~/opengrok_data\-c/usr/bin/ctags\-W~/opengrok_data/configuration.xml\-P-S-G-v~/opengrok_index.log21# 【进度观测】查看索引目录大小判断索引是否正在增长初始为空成功后应达 GB 级du-sh~/opengrok_data/index# 【实时日志】跟踪索引构建过程输出按 CtrlC 退出tail-f~/opengrok_index.log# 【Tomcat 配置】修改 source.war 的 WEB-INF/web.xml注入 OpenGrok 配置文件路径# param-value 必须与上一步 -W 参数完全一致否则 Tomcat 启动后无法加载配置vim~/apache-tomcat-10.1.34/webapps/source/WEB-INF/web.xml# → 此处应确保 XML 中 param-value 内容为/home/maqi/opengrok_data/configuration.xml# 【服务治理】优雅停止 Tomcat避免端口残留或资源泄漏~/apache-tomcat-10.1.34/bin/shutdown.sh# 【JVM 环境】配置 Tomcat 使用 JDK 21⚠️ 同样/usr/lib/jvm/java-21-openjdk-amd64 是 x86_64 路径# 在本机arm64必须改为实际存在的 ARM64 JDK 路径例如# export JAVA_HOME/usr/lib/jvm/java-21-openjdk-arm64 ← 需先通过 update-java-alternatives -l 确认真实路径vim~/apache-tomcat-10.1.34/bin/setenv.sh# 添加或修改export JAVA_HOME...# 【服务启停】重启 Tomcat 并实时观察启动日志重点关注 Server startup 和 source started~/apache-tomcat-10.1.34/bin/startup.shtail-f~/apache-tomcat-10.1.34/logs/catalina.out