我正在尝试设置OpenGrok来搜索几GB的代码,主要是Java和Python项目。我使用opengrok-0.12.1/bin/OpenGrok index $SRC_ROOT
来构建索引。我可以看到它索引Java的“目标”和Python的“.tox”目录,我不需要它。
我在网上搜索并在许多论坛中发现了同样的问题,答案是使用-i。我试图将此选项与OpenGrok包装脚本以及opengrok.jar一起使用,但我得到的只是帮助消息(因为命令行选项显然是错误的)。
你能给我一个示例命令来构建忽略某些目录的索引吗?
答案 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
的目录中的所有文件。
答案 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