使用 Nebula ArchRules 扩展 ArchUni... 笔记

使用 Nebula ArchRules 扩展 ArchUnit

Netflix 采用多仓库策略,管理着数千个 Java 仓库,需要高效的构建逻辑共享。为此,他们构建了 Nebula 系列 Gradle 插件,其中包括 ArchRules,用于管理依赖并强制执行代码规范。该举措源于对 Java 库生命周期管理的改进需求,起因是一次向后不兼容变更引发的事故。Netflix 利用 API 生命周期注解(@Deprecated、@Public、@Experimental)来识别废弃代码可能带来的问题。ArchUnit 是一款广受欢迎的用于强制执行架构规则的库,被选中用于检测这些注解的误用及其他技术债务问题。Nebula ArchRules 插件实现了 ArchUnit 规则在多个仓库间的共享与应用,从而增强了功能。ArchRules 使用字节码分析(ASM)支持跨语言,并通过易于使用的构建者模式简化规则创建。规则可以打包在库中,或定义在独立的规则库中,由插件自动检测并运行。ArchRules Runner 插件针对源集评估规则,并生成 JSON 和控制台报告,从而提升了报告能力。通过使用 ArchRules,Netflix 为库作者提供了一个平台,用于追踪 API 使用情况并检测废弃 API 的误用。
CdXz5zHNQW_UkqZEpugr5.png