5

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

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

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

4

3 回答 3

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所有文件以及名为targetor的目录中的所有文件的索引.tox

编辑学分:mrenaudpcas

于 2015-04-04T01:39:07.323 回答
2

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

于 2018-05-02T09:54:29.170 回答
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-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

于 2020-07-31T16:40:54.257 回答