如何忽略OpenGrok索引中的目录?

时间:2015-03-11 22:56:44

标签: opengrok

我正在尝试设置OpenGrok来搜索几GB的代码,主要是Java和Python项目。我使用opengrok-0.12.1/bin/OpenGrok index $SRC_ROOT来构建索引。我可以看到它索引Java的“目标”和Python的“.tox”目录,我不需要它。

我在网上搜索并在许多论坛中发现了同样的问题,答案是使用-i。我试图将此选项与OpenGrok包装脚本以及opengrok.jar一起使用,但我得到的只是帮助消息(因为命令行选项显然是错误的)。

你能给我一个示例命令来构建忽略某些目录的索引吗?

3 个答案:

答案 0 :(得分:8)

解决方案是使用-i标志。执行此操作的最佳方法是创建.conf文件。例如,我将以下文件定义为opengrok.conf

OPENGROK_APP_SERVER=Tomcat
OPENGROK_TOMCAT_BASE=/usr/local/Cellar/tomcat/8.0.21/libexec
OPENGROK_SCAN_DEPTH=4
OPENGROK_VERBOSE=yes
OPENGROK_PROGRESS=yes
IGNORE_PATTERNS="-i f:foo.txt -i *.bar -i d:target -i d:.tox"

使用以下命令运行索引: OPENGROK_CONFIGURATION=opengrok.conf ./OpenGrok index $SRC_ROOT

它忽略索引文件foo.txt,与模式*.bar匹配的所有文件以及名为target.tox的目录中的所有文件。

修改点数:mrenaudpcas

答案 1 :(得分:2)

请注意,https://github.com/oracle/opengrok/pull/1841已将IGNORE_PATTERNS重命名为OPENGROK_IGNORE_PATTERNS(2017年10月)。

答案 2 :(得分:0)

https://github.com/oracle/opengrok/wiki/How-to-setup-OpenGrok

java -jar opengrok-1.3.16/lib/opengrok.jar --help

  -i, --ignore pattern
        Ignore matching files (prefixed with 'f:' or no prefix) or directories
        (prefixed with 'd:'). Pattern supports wildcards (example: -i '*.so'
        -i d:'test*'). Option may be repeated.

使用新的opengrok工具,看起来像

opengrok-indexer                                                           \
    --java_opts=-Djava.util.logging.config.file=$(OPENGROK_BASE)/etc/logging.properties \
    --jar $(OPENGROK_DIST)/lib/opengrok.jar --                                          \
    --ctags /usr/local/bin/ctags                                                        \
    --source $(PWD)                                                                     \
        --dataRoot $(OPENGROK_BASE)/data                                                    \
        --progress                                                                          \
        --history                                                                           \
        --assignTags                                                                        \
    --writeConfig $(OPENGROK_BASE)/etc/configuration.xml                                \
        --analyzer .sc:ScalaAnalyzer                                                        \
        --ignore 'd:zold'                                                                   \
        --ignore 'd:opengrok'                                                               \
        --ignore 'd:tmp'                                                                    \
        --ignore 'd:.venv'                                                                  \
        --ignore 'd:.ipynb_checkpoints'                                                     \
        --ignore 'd:.metals'                                                                \
    # END