大家好,又见面了,我是你们的朋友全栈君。
一、介绍 openGrok是用于代码在线阅读和搜索以及交叉引用的引擎使用Java语言编写的系统。它帮助你检索/索引和本地目录树导航。它可以理解各种编程语言的文件格式和各种配置管理工具。可以配合Mercurial/Git/SCCS/RCS/CVS/Subversion/Teamware/ClearCase/Perforce/Monotone和Bazaar。
二、安装环境 1. 最新的JDK 2. Servlet容器, 如Tomcat 8.x 3. Ctags 4. 代码版本管理工具 5. 如果自己编译,需要Ant/JFlex/Netbeans
三、使用 openGrok通常在servlet容器中运行(Tomcat)。 SRC_ROOT环境变量的值,是你工程代码的根目录。openGrok分析代码树并构建快速检索的索引,同时会解析代码在配置库中的不同版本的历史信息。解析过程中生成的数据会统一放在环境变量DATA_ROOT指定的目录中。
3.1 项目 OpenGrok中有项目的概念,一个项目对应SRC_ROOT下的一个目录,这个目录中文件是从配置库中检出的代码文件的工作区。 有了项目的概念一个OpenGrok应用可以处理多个项目,这样就不需要部署多个openGrok环境。一个应用可以处理多个代码配置库或项目。opengrok还可以处理项目或多个仓库的代码同步更新的脚本。 一个好的建议是为SRC_ROOT下的代码目录名称加上版本和分支的信息。如name-version-branch 实例: SRC_ROOT目录下可以有 openssh-head openssh-0.9.8-stable openssh-1.0.0-stable
每个目录都是从代码库中检出的工作区。在OpenGrok都被作为一个项目处理。
四、安装 4.1 Solaris平台使用*.p5p文件 4.1.0 安装 执行命令#pkg install –no-refresh -g /path/to/file/<package_name>.p5p opengrok 4.1.1更新 你可以通过*.p5p文件更新openGrop软件,更新的命令是 #pkg updatge –no-refresh -g /path/to/file/<package_name>.p5p ‘pgk://<publisher>/*’
五、配置 5.1 配置工程源码 在进行配置之前,首先需要从代码配置库中检出代码文件,启动opengrok应用。 在SRC_ROOT指定的目录下检出工程代码。openGrok不会自动更新检出的工程代码,需要你自己执行更新脚本。 如果是非分布式的配置管理工具(Subversion,CVS)可以不检出代码通过远程的方法来进行(不推荐使用此方式)。 如果要解析配置库的历史,需要安装配置管理工具,并给opengrok指定执行文件的所在的具体路径。 注意: opengrok 不处理连接文件。 如果你要忽略工程代码中的特定的目录及其子目录,可以在根目录中创建.opengrok_skip_history文件,将要忽略的目录写入其中。
5.2 使用opengrok shell脚本创建索引 在Linux系统用openGrok提供shell脚本来处理不同的任务,这些已在Solaris和其他Linux发行版本中验证过了。 5.2.1 应用部署 可以在其他用户下部署openGrok应用 #pfexec su – webservd $cd /usr/opengrok/bin $ ./OpenGrok deploy openGrok将在此目录下通过source.war进行部署。 5.2.2 DATA_ROOT目录配置 在openGrok生成索引的过程中会生成OpenGrok XML配置文件 configuration.xml并且会更新web应用。生成索引会花费很长时间,在这之后其可以自动更新。 第一次更新 $cd /usr/opengrok/bin SRC_ROOT默认是/var/opengrok/src $./OpenGrok index 否则使用 $./OpenGrok index <absolute_path_to_your_SRC_ROOT> 上面的命令将最新的索引信息更新如configurations.xml文件中。
openGrok定制化脚本,新增环境变量OPENGROK_INSTANCE_BASE默认是/var/opengrok如果opengrok的数据目录是/tank/opengrok 代码目录是/tank/source
$OPENGROK_VERBOSE=true OPENGROK_INSTANCE_BASE=/tank/opengrok ./OpenGrok index /tank/source
修改默认的配置文件
$ln -s /tank/opengrok/etc/configuration.xml /var/opengrok/etc/configuration.xml
更多的定制化脚本需要使用OPENGROK_CONFIGURATION这个环境变量。
5.2.3 局部索引更新
5.4 使用命令行更新索引 5.4.1 更新DATA_ROOT目录 opengrok有一些适合定期自动执行的脚本。opengrok.jar文件是可以直接执行的。 $java -jar opengrok.jar -s $SRC_ROOT -d $DATA_ROOT
5.4.2 部署和配置source.war 在source.war的web.xml文件中有如下参数可以修改 HEADER: HTML格式的文件,用于自定义欢迎页面和logo SRC_ROOT: 本地工程代码根目录的绝对路径 DATA_ROOT: 存放opengrok数据的目录绝对路径 5.4.3 路径描述 5.4.4 修改tomcat的配置参数 5.4.5 自定义ctags的配置
5.5 使用Java DB 存储历史缓存信息
转载于:https://my.oschina.net/hopeMan/blog/537550
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/136341.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...