OpenGrok介绍「建议收藏」

OpenGrok介绍「建议收藏」2019独角兽企业重金招聘Python工程师标准>>>…

大家好,又见面了,我是你们的朋友全栈君。

一、介绍 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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/136341.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月4日 下午2:00
下一篇 2022年5月4日 下午2:20


相关推荐

  • linux arm 安装node,Linux下安装Node.js

    linux arm 安装node,Linux下安装Node.js最近在 Linux 下安装 nodejs 本来很简单的一事儿 结果就遇到了一些问题 为了方便以后查阅 还是把一些重要的步骤和所遇问题记录下来 以供大家参考 毕竟好记性不如烂笔头吗 安装 Nodejs 本来觉得安装这个很 easy 因为之前装过 也很顺利 但这次却出现了意外 首先从 nodejs 官网下载安装包 我当时下载的是这个版本 http nodejs org dist v0 10 26 nod

    2026年3月26日
    1
  • android之switch控件的用法

    在做一个蓝牙开关时候,用到了switch,记一下用法,其实跟Button是几乎一样的.布局中:<Switch android:id=”@+id/open” android:layout_width=”wrap_content” android:layout_height=”wrap_content” android…

    2022年3月10日
    46
  • 查看此docker网络连接模式_Docker系列-Docker 网络模式及配置

    查看此docker网络连接模式_Docker系列-Docker 网络模式及配置一 Docker 网络模式 dockerrun 创建 Docker 容器时 可以用 net 选项指定容器的网络模式 Docker 有以下 4 种网络模式 host 模式 使用 net host 指定 container 模式 使用 net container NAME or ID 指定 none 模式 使用 net none 指定 bridge 模式 使用 net bridge 指定 默认

    2026年3月16日
    5
  • 如何简便的解决虚拟机里软件过期问题「建议收藏」

    如何简便的解决虚拟机里软件过期问题「建议收藏」如果你的虚拟机里安装了有期限软件供学习使用,在过期后只能先修改其宿主机操作系统的系统时间才能使用,很不方便。如何简便的解决此过期问题呢?   感谢网友的分享,找到通过修改VMWare虚拟机配置参数的方式,固化每次启动虚拟机时间为国定时间,并禁止其与互联网同步时间,让虚拟机系统一直生活在2014年3月份。具体方法如下:   如果你在vmware(本案例为VMWarePlayer6

    2025年11月14日
    3
  • fragment与activity的生命周期方法是一致的吗_请描述activity的生命周期

    fragment与activity的生命周期方法是一致的吗_请描述activity的生命周期在学Fragment之前肯定学过了Activity,Activity有属于自己的生命周期,Fragment基本上和activity大体一样,但是有自己特有的生命周期方法,下面我们一起来看一下。说白了主要看两张图,和运行代码:一.Fragment的生命周期二.与Activity生命周期的对比三.场景演示

    2022年8月16日
    16
  • 数百万辆汽车的最强大脑——云端车联网架构实战

    数百万辆汽车的最强大脑——云端车联网架构实战

    2022年3月6日
    53

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号