0

我有来自不同存储库的类,它具有公共方法,并已在导入的类中使用。

例子:

com.tables.Field类,它具有来自不同存储库的公共方法并已在项目中使用。

我希望上面的 Field 类只能由以下包 com.test.FieldImpl中的类使用 ,并且不应被项目中的其他包使用。

如何为这种情况编写谓词

private final ArchRule table_should_access_only_impl = classes().that().
            haveFullyQualifiedName("com.tables.Field").should().accessTargetWhere(?);
4

1 回答 1

0

我认为您正在寻找这样的东西:

ArchRule table_should_access_only_impl = noClasses()
    .that().doNotHaveFullyQualifiedName("com.test.FieldImpl")
    .should().accessClassesThat().haveFullyQualifiedName("com.tables.Field");

除了字段访问或方法调用之外accessClassesThat,您还可以使用代替dependOnClassesThat,它涵盖了更多的依赖项。

于 2022-02-21T13:35:10.907 回答