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

How to ignore directories in OpenGrok index?

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

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

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

解决方案是使用 -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.[=18= 的目录中的所有文件]

编辑致谢名单:mrenaud, pcas

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

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-tools,看起来像

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