init
在使用这个项目之前,首先也要安装环境,具体可以参考《enviorment-installation.md》(官方文档写的啥??网上的环境安装写的乱的不行,吐槽一下)另外如果只是配置服务而不需要了解工程的具体细节,直接将myopengrok.war放到tomcat的webapp下就ok了。如果程序有什么小bug,哈哈哈,那就搭建一下吧.
MyOpenGrok是基于OpenGrok的源代码搜索工具,通过提取关键代码而形成一个提供源代码搜索API接口.
具体可以参照:enviorment-installation.md
启动tomcat,在浏览器访问:http://localhost:8080/source ,如果展示了下面的页面,就说明安装成功了。
注意:如果想要对某个项目使用MyOpengrok的功能,首先必须对这个项目建立索引!!,如果新添加了一个项目,记得一定要对这个项目建立索引!!!
进入opengrok的根目录,在命令行执行:
java -Xmx524m -jar lib/opengrok.jar -W "<opengrok-home>/data/configuration.xml" -P -S -v -s "<project-path>" -d "<opengrok-home>/data"
其中代表opengrok的根目录,为需要建立索引的项目的路径,如果指定的路径下包含多个项目,那么OpenGrok会对每一个项目都建立索引,并存储在不同的文件夹中。
opengrok建立索引的方式是增量建立,也就是如果之前已经对某个项目建立了索引,下一次如果中包含了该项目,建立索引时会跳过该项目。
一般情况下我们会将所有的项目全部放在/source下面,而如果添加了一个新项目,只需要这样执行以下的命令:
java -Xmx524m -jar lib/opengrok.jar -W "<opengrok-home>/data/configuration.xml" -P -S -v -s "<opengrok-home>/source" -d "<opengrok-home>/data"
在opengrok中,如果想要查看code-reading/src/main/java/com/codeReading/config/ElasticsearchConfig.java文件的内容,可以通过访问:http://localhost:8080/xref/code-reading/src/main/java/com/codeReading/config/ElasticsearchConfig.java, 而MyOpengrok既保留了这种访问方式,而且,如果只想获取文件的内容,可以将上面url中的xref替换为myxref即可.
首先所谓的navigation也就是文件的一些重要的内容,由三个部分组成:class,package,method,如果我想获取code-reading/src/main/java/com/codeReading/config/ElasticsearchConfig.java文件的Navigation的内容,可以通过访问:http://localhost:8080/navigation/code-reading/src/main/java/com/codeReading/config/ElasticsearchConfig.java ,(其实跟上面的方式类似,只是将xref替换为了navigation而已),返回值如下所示:
["Class","xc",[["ElasticsearchConfig",19]]],["Package","xp",[["com.codeReading.config",1]]],["Method","xmt",[["searchOperator",24],["transportClient",29]]]
返回值的意思就是文件的Class名为ElasticsearchConfig,在文件的第19行,第二个参数”xc”一般用不上,(它是opengrok中html中的class属性).
在opengrok中,搜索可以如果想要只在jdk1.8这个项目下搜索defs=Date的项,可以在浏览器访问:
http://localhost:8080/search?project=jdk1.8&defs=Date
如果想要在jdk1.8和code-reading这两个项目下搜索defs=Date的项,可以这么访问:
http://localhost:8080/search?project=jdk1.8&project=code-reading&defs=Date
而在MyOpenGrok中,只要将search替换成mysearch,那么就会将搜索到的结果以json字符串的形式返回.,返回值如下所示(只截取了部分):
"defs":"Date","duration":20,"resultcount":138,"results":[{"path":"\/jdk1.8\/src\/java\/sql\/Date.java","filename":"Date.java","lineno":"38","line":"ICogbWlsbGlzZWNvbmQgdmFsdWVzIHdyYXBwZWQgYnkgYSAmbHQ7Y29kZSZndDtqYXZhLnNxbC48Yj5EYXRlPC9iPiZsdDsvY29kZSZndDsgaW5zdGFuY2U=","directory":"\\/jdk1.8\\/src\\/java\\/sql"},...]
返回值中,duration的值表示搜索所花费的时间,单位为毫秒, resultcount表示结果的个数,在result中,值得注意的是line对应的是代码,已经被Base64编码了,如果要获取代码的具体内容,应该先用base64解码
<p> 基于opengrok构建的API,提供功能: </p> <p> 1.文件结构树 </p> <p> 2.搜索 </p> <p> 3.opengrok的形式的代码文件 </p>
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
在使用这个项目之前,首先也要安装环境,具体可以参考《enviorment-installation.md》(官方文档写的啥??网上的环境安装写的乱的不行,吐槽一下)另外如果只是配置服务而不需要了解工程的具体细节,直接将myopengrok.war放到tomcat的webapp下就ok了。如果程序有什么小bug,哈哈哈,那就搭建一下吧.
Introduction
MyOpenGrok是基于OpenGrok的源代码搜索工具,通过提取关键代码而形成一个提供源代码搜索API接口.
Requirement
1.安装opengrok:
具体可以参照:enviorment-installation.md
2.验证是否安装成功:
启动tomcat,在浏览器访问:http://localhost:8080/source ,如果展示了下面的页面,就说明安装成功了。
3.使用opengrok对项目建立索引
注意:如果想要对某个项目使用MyOpengrok的功能,首先必须对这个项目建立索引!!,如果新添加了一个项目,记得一定要对这个项目建立索引!!!
进入opengrok的根目录,在命令行执行:
其中代表opengrok的根目录,为需要建立索引的项目的路径,如果指定的路径下包含多个项目,那么OpenGrok会对每一个项目都建立索引,并存储在不同的文件夹中。
opengrok建立索引的方式是增量建立,也就是如果之前已经对某个项目建立了索引,下一次如果中包含了该项目,建立索引时会跳过该项目。
一般情况下我们会将所有的项目全部放在/source下面,而如果添加了一个新项目,只需要这样执行以下的命令:
Usage
1.获取项目中文件的内容:
在opengrok中,如果想要查看code-reading/src/main/java/com/codeReading/config/ElasticsearchConfig.java文件的内容,可以通过访问:http://localhost:8080/xref/code-reading/src/main/java/com/codeReading/config/ElasticsearchConfig.java, 而MyOpengrok既保留了这种访问方式,而且,如果只想获取文件的内容,可以将上面url中的xref替换为myxref即可.
2.获取文件的navigation内容
首先所谓的navigation也就是文件的一些重要的内容,由三个部分组成:class,package,method,如果我想获取code-reading/src/main/java/com/codeReading/config/ElasticsearchConfig.java文件的Navigation的内容,可以通过访问:http://localhost:8080/navigation/code-reading/src/main/java/com/codeReading/config/ElasticsearchConfig.java ,(其实跟上面的方式类似,只是将xref替换为了navigation而已),返回值如下所示:
返回值的意思就是文件的Class名为ElasticsearchConfig,在文件的第19行,第二个参数”xc”一般用不上,(它是opengrok中html中的class属性).
3.按关键字搜索
在opengrok中,搜索可以如果想要只在jdk1.8这个项目下搜索defs=Date的项,可以在浏览器访问:
http://localhost:8080/search?project=jdk1.8&defs=Date
如果想要在jdk1.8和code-reading这两个项目下搜索defs=Date的项,可以这么访问:
http://localhost:8080/search?project=jdk1.8&project=code-reading&defs=Date
而在MyOpenGrok中,只要将search替换成mysearch,那么就会将搜索到的结果以json字符串的形式返回.,返回值如下所示(只截取了部分):
返回值中,duration的值表示搜索所花费的时间,单位为毫秒, resultcount表示结果的个数,在result中,值得注意的是line对应的是代码,已经被Base64编码了,如果要获取代码的具体内容,应该先用base64解码