如何配置jQAssistant 2.1.0扫描时排除指定目录?
jQAssistant 2.1.0 扫描时排除指定目录的正确配置
问题场景
使用jqassistant-commandline-neo4jv4-2.1.0,希望配置.jqassistant.yml排除/BOOT-INF/lib和其他lib目录的扫描,尝试过以下配置但无效:
jqassistant: scan: include: files: - "!/BOOT-INF/lib/**" - "!**/lib/**"
扫描日志仍显示程序进入/BOOT-INF/lib下的Jar包执行扫描:
2024-03-21 15:04:56.867 [main] INFO AbstractContainerScannerPlugin - Entering /BOOT-INF/lib/spring-boot-starter-data-mongodb-2.0.3.RELEASE.jar 2024-03-21 15:04:56.868 [main] INFO AbstractContainerScannerPlugin - Leaving /BOOT-INF/lib/spring-boot-starter-data-mongodb-2.0.3.RELEASE.jar (3 entries, 0 ms) 2024-03-21 15:04:56.869 [main] INFO AbstractContainerScannerPlugin - Entering /BOOT-INF/lib/spring-boot-starter-2.0.3.RELEASE.jar 2024-03-21 15:04:56.869 [main] INFO AbstractContainerScannerPlugin - Leaving /BOOT-INF/lib/spring-boot-starter-2.0.3.RELEASE.jar (3 entries, 0 ms)
同时尝试了基于scan.properties的配置(对应版本无-p参数,改用-C加载),以下两种写法均未生效:
file.include=!/BOOT-INF/lib/*,!/lib/*
file.exclude=/BOOT-INF/lib/*,/lib/*
正确配置方案
在jQAssistant 2.1.0版本中,需使用exclude节点直接定义排除路径,正确的.jqassistant.yml配置如下:
jqassistant: scan: exclude: files: - "**/BOOT-INF/lib/**" - "**/lib/**"
配置说明
- 2.x版本的jQAssistant明确区分
include和exclude规则:include中的!前缀仅用于从已包含的路径中剔除子集,若未先配置父路径的包含规则,单独使用!前缀的排除逻辑不会生效。 - 直接通过
exclude节点定义的路径会被扫描程序直接跳过,无需依赖include的前置配置。 - 路径采用Ant风格匹配:
**表示任意层级的目录,确保能匹配到所有位置的lib目录及其子内容。
内容的提问来源于stack exchange,提问作者OStefanova
相关产品推荐
相关产品推荐

