window搭建opengrok和简单使用

opengrok搭建


需要提前下载的相关工具包

  1. Tomcat 版本:10.0.27

  1. JDK 版本:17.0.6

  1. Universal Ctags 版本:新版本即可,我是用的是Ctags58

  1. OpenGrok 版本:最新版本即可

JDK配置

下载好JDK后进行安装,安装完成配置环境变量,配置 JAVA_HOME 或者 JRE_HOME 环境变量为安装目录

Tomcat配置

配置CATALINA_HOME环境变量为解压目录,比如D:\SOFT\apache\apache-tomcat-10.0.27

Ctags配置

将 ctags.exe 文件所在目录添加到 PATH 环境变量

opengrok配置

  • 解压缩,并在opengrok目录中创建一个data和一个source文件夹,data存放索引信息,source存放项目代码,可以通过mklink链接

  • java -jar "D:\SOFT\opengrok\opengrok-1.7.42\opengrok-1.7.42\lib\opengrok.jar" -W "D:\SOFT\opengrok\opengrok-1.7.42\opengrok-1.7.42\data\configuration.xml" -P -S -v -s "D:\SOFT\opengrok\opengrok-1.7.42\opengrok-1.7.42\source" -d "D:\SOFT\opengrok\opengrok-1.7.42\opengrok-1.7.42\data"

    /**注释
    *
    *
    -P 表示为 source root 目录下的每个一级子目录生成一个工程。

    -S 表示搜索并添加 “external” source repositories。

    -v 表示打印操作的进度信息。

    -s 表示指定 source root。

    -d 表示指定 data root。

    -W 表示指定将配置写到该文件。
    *
    *
    **/

执行上述命令,目录根据自身情况修改。执行完会在data目录中创建索引文件和configureation.xml

  • 将lib目录中的source.war文件拷贝到tomcat的D:\SOFT\apache\apache-tomcat-10.0.27\webapps目录下,运行bin\catalina.bat start即可自动解压缩source.war并部署。

  • 打开source.war解压后的source文件夹修改WEB-INF/web.xml文件的CONFIGURATION 为第二步生成的 data 目录下的 configureation.xml

  • 最后执行./catalina.bat start或者startup.bat启动Tomcat服务即可

遇到的问题

问题一:

kernel-4.4创建索引后,在opengrok中无法执行搜索操作!!!

问题根因:

window不区分文件名大小写,kernel-4.4中又部分文件名称相同大小写不同,导致创建索引报错,

解决方案:

#开启window指定目录文件大小写 我的path = D:\SOFT\opengrok\opengrok-1.7.42\data

fsutil.exe file setCaseSensitiveInfo "<path>" enable

#执行下面指令后才可以执行上面指令

Enable-WindowsOptionalFeature -Online-FeatureName Microsoft-Windows-Subsystem-Linux

问题二:

启动tomcat后没有加载出对应项目的代码

问题根因:

项目代码在服务器,window管理员权限无权访问

解决方案:

使用mklink时采用管理员权限发开cmd,启动tomcat和窗前引用的的时候使用普通的cmd窗口即可

参考链接

https://www.cnblogs.com/bluestorm/p/15502051.html

https://zhuanlan.zhihu.com/p/24369747

fsutil - setCaseSensitiveInfo之后不支持该请求-腾讯云开发者社区-腾讯云

opengrok使用


  • project:提供在特定目录下搜索,例如在分析 Framework 时,可以选择 frameworks 目录,这样可以减少搜索范围,能够更加精确地定位到需要的源代码。

  • Full Search: 进行全文搜索,会匹配所有的单词、字符串、标识符以及数字等

  • Definition:搜索符号定义相关的代码,

  • Symbol:搜索符号,例如可以搜索类中的成员变量等

  • File Path:搜索源码文件名中包含给定字符串的文件

  • + 表示包含此字符串,- 表示不包含此字符串。例如在 Full Search 中搜索包含 activity字符串但是不包含 service 字符串的源文件,可以填入+”activity” -“service”(去掉双引号同样可以,但是对于不可分割的词且两者间包含空格则双引号不可去,此规则适用于所有的搜索规则,例如 Full Search “final String”,双引号去除表示或的关系,这个与 Google 的搜索规则是一样的);

  • 布尔操作,可以使用 AND(&&),”+”,OR(||),NOT(!)以及”-”(AND 等必须全部大写),例如搜索既包含 final 又包含 String 的源码文件,可以 Full Search 中填入”final” AND “String”;

  • 使用通配符,”?”代表一个字符,”*”代表多个字符(“?”和”*”不可用于字符串的开头);

  • 模糊查询,可以使用”~”搜索包含与提供的字符串拼写类似的源码文件等内容;

  • 转义字符,OpenGrok 中使用到的特殊字符包括+ – && || ! ( ) { } [ ] ^ ” ~ * ? : \ ,因此如果需要搜索的内容中包含这些特殊字符,可以使用\进行转义,例如搜索(1+1):2,可以这样1+11+1\:2

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值