Sonarqube 架构约束

Sonarqube 架构约束,sonarqube,Sonarqube,我有一个包“parent”,其中包含包“parent.child1”、“parent.child2”等 我希望强制执行“parent.x”中的类不能引用“parent.*.”中的类(而不是“parent.x”和“parent.x.*.”) 第一位是一个简单的、尽管是递归的体系结构约束。“除此之外”条款是一个棘手的问题 我们在多模块maven项目中采用这种结构的原因是,每个“子”都是一个小型的、自包含的类集合。将每个“子”都变成maven模块是不切实际的。我们讨论的是每个类有5到6个类,开发人员可

我有一个包“parent”,其中包含包“parent.child1”、“parent.child2”等

我希望强制执行“parent.x”中的类不能引用“parent.*.”中的类(而不是“parent.x”和“parent.x.*.”

第一位是一个简单的、尽管是递归的体系结构约束。“除此之外”条款是一个棘手的问题

我们在多模块maven项目中采用这种结构的原因是,每个“子”都是一个小型的、自包含的类集合。将每个“子”都变成maven模块是不切实际的。我们讨论的是每个类有5到6个类,开发人员可以自行决定是否创建新的“子”包


感谢和问候,罗宾。

对不起,但是你必须以痛苦的方式(每个禁止的子包有一条规则)完成这项工作,或者对你的正则表达式非常聪明。参数值作为Java正则表达式进行计算,因此

编辑:
您也可以尝试自定义规则。Java不再支持XPath,但您可以用Java编写自定义规则。您很可能可以在自定义规则中执行您想要的操作,但我还没有完全了解API,因此无法确定。

我可以将新规则表示为XPath吗?不确定您是否支持基于XPath的Java工件规则…?是否在Java中实现了ArchitecturalContraint规则,我是否可以将此代码视为自定义规则的起点?当然: