我想为PMD创建一个自定义规则集,找到使用特定包的所有声明变量。它应该是 XPath 规则集,因为这对我来说更容易维护。
我能够找到import
语句和变量。我正在使用 XPath 来查找声明:
//VariableDeclarator[../Type
/ReferenceType
/ClassOrInterfaceType
[@Image = 'ClassA']]
但是,这只匹配确切的类,但是我想检查这个类是否来自包my.package
,我不知道如何获得它。
任何提示?
答案 0 :(得分:1)
自从我使用PMD以来已经有一段时间了,我将从内存开始,但尝试使用XPath:
//ClassOrInterfaceDeclaration[preceding::PackageDeclaration/Name/@Image = 'my.package']//VariableDeclarator[etc..
基本上,它在XML中查找声明相应包的相关节点。就像我说的那样,这是来自相当古老的记忆,但希望它至少应该指向正确的方向。