是的,ArchUnit提供了一种使用通用占位符检查包访问的方法。可以使用以下代码示例检查所有受保护的类是否仅由某些特定包访问:
ArchRuleDefinition.classes().that().areProtected()
.should().beAccessed().byAnyPackage("..my.package..", "..my.other.package..")
.check(myClasses);
在这个例子中,“..”表示通配符,可以匹配任意数量的子包。在本例中,“..my.package..”和“..my.other.package..”将匹配所有名称中包含“my.package”和“my.other.package”的包。如果使用“my.package”和“my.other.package”而不是通用占位符,则只会匹配直接位于这些包下的类,而不匹配子包中的类。