Deptrac同层依赖误报未覆盖问题求助
解决Deptrac同层依赖误报问题
检查收集器路径与命名空间映射
先确认收集器的目录配置是否精准匹配目标层的文件路径,示例配置:collectors: ExternalServiceInfrastructure: - 'src/ExternalService/Infrastructure/**/*'同时核对类的命名空间与目录结构是否符合PSR-4规范,比如
App\Infrastructure\Service\ExternalServiceClient对应的实际目录是否为src/ExternalService/Infrastructure/Service?若命名空间和目录不对应,收集器会无法将类归入目标层,直接引发误报。验证规则集配置优先级
确保规则集明确允许同层依赖,配置示例:ruleset: ExternalServiceInfrastructure: - ExternalServiceInfrastructure排查是否存在优先级更高的规则(比如全局禁止规则、更具体的分层规则)覆盖了这个允许逻辑——Deptrac会按规则定义顺序匹配,后续规则可能覆盖前置规则。
清理Deptrac缓存
执行命令deptrac cache:clear,旧的依赖缓存可能导致配置更新后无法生效,清理完成后重新执行分析。用Debug模式确认分层归属
运行deptrac analyze --debug,查看ExternalServiceClient和ExternalRequest实际被分配到哪个层。如果其中一个未归入ExternalServiceInfrastructure,说明收集器配置存在问题;若两者都在目标层仍报错,需检查规则集是否未正确应用。
内容的提问来源于stack exchange,提问作者MariusP
相关产品推荐
相关产品推荐

