PMD - 跳过检查@PostConstruct或@PreDestroy注释的方法

2023-12-30

我有以下课程:

import javax.annotation.PostConstruct;

public class PmdUnusedMethod {

    private void unusedMethod() {
    }

    @PostConstruct
    private void postConstructAnnotatedMethod() {
    }
}

并定义了 PMD 规则集:

<rule ref="rulesets/java/unusedcode.xml"/>

在这种情况下,PMD 向我报告两个有关未使用方法的错误(“unusedMethod”和“postConstructAnnotatedMethod”),但我想忽略使用 @PreDestroy 和 @PostConstruct 注释的方法的规则“UnusedPrivateMethod”。

我知道我可以做这样的事情:

<rule ref="rulesets/java/unusedcode.xml">
        <exclude name="UnusedPrivateMethod"/>
    </rule>
    <rule ref="rulesets/java/unusedcode.xml/UnusedPrivateMethod">
        <properties>
            <property name="violationSuppressXPath"
                      value="//ClassOrInterfaceBodyDeclaration/Annotation/MarkerAnnotation/Name[@Image='PostConstruct']"/>
        </properties>
    </rule>

但在这种情况下,PMD 会跳过检查包含我的注释的类中所有方法的规则,而不仅仅是使用 @PostConstruct 注释的方法。我希望在检查代码后,我只遇到“unusedMethod”错误,并且 PMD 不会通知有关“postConstructAnnotatedMethod”的错误。

我想做这样的事情:

<rule ref="rulesets/java/unusedcode.xml/UnusedPrivateMethod">
    <properties>
        <property name="violationSuppressXPath"
                  value="//MethodDeclaration/Annotation/Name[@Image='PostConstruct']"/>
    </properties>
</rule>

仅跳过带有所需注释的方法,而不是所有方法。

我也不想用很多东西污染我的代码@SuppressWarnings("PMD.UnusedPrivateMethod")注释。


抑制 XPath 是以违规所在的节点为起点执行的,因此您可以简单地“转到方法,然后检查注释”。

例如:

<rule ref="rulesets/java/unusedcode.xml/UnusedPrivateMethod">
    <properties>
        <property name="violationSuppressXPath"
                  value="./ancestor::ClassOrInterfaceBodyDeclaration/Annotation/MarkerAnnotation/Name[@Image='PostConstruct']"/>
    </properties>
</rule>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PMD - 跳过检查@PostConstruct或@PreDestroy注释的方法 的相关文章

  • 在 Java/Android 中检查字符串是否包含 URL 的最佳方法是什么?

    在 Java Android 中检查字符串是否包含 URL 的最佳方法是什么 最好的方法是检查字符串是否包含 com net org info 其他 或者有更好的方法吗 url 输入到 Android 中的 EditText 中 它可以是粘
  • 可以显式删除 lambda 的序列化支持

    As 已经知道 https stackoverflow com a 22808112 2711488很容易添加序列化当目标接口尚未继承时支持 lambda 表达式Serializable 就像 TargetInterface Seriali
  • Lambda 表达式更慢?

    我有下面这段代码 PriorityQueue
  • JUnit 测试方法无法返回值

    为什么 JUnit 测试方法无法返回值 文档 https junit org junit5 docs current user guide writing tests classes and methods说 强调我的 测试方法和生命周期方
  • 如何在 Java 中用 \n 替换 \\n

    我有一个string test first n middle n last 现在我想更换所有 n by n 我试过了test replaceAll n n and test replaceAll n n 但它们不起作用 有人有解决办法吗 T
  • EDITLogBack Syslog 不工作 java

    我写了一个简单的项目来在 Ubuntu 中运行日志 方法如下example https examples javacodegeeks com enterprise java logback logback syslog example 应用
  • hibernate session 的 get() 和 load() 方法在获取方面有什么区别?

    get 和 load 方法有什么区别 关于数据获取方法 public static void main String args SessionFactory factory new Configuration configure build
  • 如何自定义 JFrame 上的标题栏?

    我想在我的 Java Swing 桌面应用程序中拥有一个自定义的标题栏 最好的方法是什么 我可以通过在 JFrame 的构造函数中使用以下代码来使用 Swing 标题栏 this setUndecorated true this getRo
  • 飞碟中的外部 CSS

    我想知道如何在 Flying Saucer 中包含外部 CSS 在此之前THB我检查了所有可用的链接StackOverflow但它们没有帮助 这就是为什么我自己做这个的原因 TestCSS xhtml重命名版本TestCSS html 所以
  • Android:如何停止监听电话监听器? [复制]

    这个问题在这里已经有答案了 可能的重复 Android 为什么 PhoneCallListener 在活动完成后仍然存在 https stackoverflow com questions 11666853 android why phon
  • 如何在 Google 地图中创建自定义地图?

    我正在尝试创建一个包含我家地图的 Google 地图应用程序 卧室 浴室 厨房等 使用 GPS 我会找到我现在在家里的位置 并尝试获取到我卧室的方向 步行距离 您可以使用Google的API来获取方向 我需要知道的是 如何添加我家的自定义地
  • 如何知道一个点是否在复杂的 3D 形状内(.ply 文件)

    我正在研究一个Java女巫项目真是要了我的命 经过几天在不同论坛上的研究 寻找我真正需要的东西 我来寻求你的帮助 我的数据 ply 文件 包含由许多三角形组成的 3D 形状 一个点 3D坐标 我想知道这个点是否包含在复杂的 3D 形状内 我
  • android中ScrollView中的图像

    在我的应用程序中 我想放置一个 png 文件 并且希望它在横向和纵向模式下都被视为滚动图像 请建议代码或示例 要使您的 Imageview 在高度不适合时滚动 您可以在 xml 中的 ScrollView 内添加一个 ImageView 并
  • SWIG C 函数指针和 JAVA

    我有一些 C 代码 其中一个方法有一个函数指针作为参数 我正在尝试在我的 Android 应用程序中使用 C 代码 我决定使用 SWIG 来完成生成我需要的 java 文件的所有工作 一切都适用于常规函数 没有函数指针作为参数的函数 但我不
  • 为什么ArrayList的非静态内部类SubList有一个成员变量“parent”?

    java util ArrayList SubList 是 java util ArrayList 的非静态内部类 这意味着它保存对其封闭类的引用 我们可以使用ArrayList this来访问java util ArrayList的成员
  • 如何在非Spring的构造型类中使用@Autowired

    我想在此类中使用该存储库 但是当我放置像 Component 这样的构造型时 我从 IDE 收到错误 无法自动装配 未找到 身份验证 类型的 bean public class CustomMethodSecurityExpressionR
  • 使用基于Optional内容的流

    我从不受我控制的服务获取可能为空的地图 并且想要处理它 比方说 过滤 映射并减少到我需要的单个元素 问题 是否有从Optional到Stream的 链接 我尝试过 除其他外 return Optional ofNullable getMap
  • JAXB 枚举字段未序列化

    我有以下课程 package dictionary import java io Serializable import java util Objects import javax xml bind annotation XmlEleme
  • POJO 支持使用omnifaces 自动完成primefaces

    我正在尝试在我的项目中使用 primefaces 自动完成组件 以避免将特定转换器写入我尝试使用的每个列表对象全能面孔 http showcase omnifaces org converters ListConverter如建议的here
  • Android,Volley请求,响应阻塞主线程

    使用 Volley 处理较大响应时会发生一些不好的事情 String url AppHelper DOMAIN service pages profile update json this infoTextView setText getS

随机推荐

  • 系统启动时哪个核心首先初始化?

    我想知道CPU启动时多核处理器的哪个核心首先初始化 我的意思是在引导加载程序级别 是第一个核心 还是随机核心 您想要阅读本地 apic 您可以在 卷 2a 中阅读 http www intel com content www us en p
  • 如何在R编程中显示同一坐标中的总数

    更新2017年9月11日问题 这是我在 R 中集群 kmode 的代码 library klaR setwd D kmodes data to cluster lt read csv kmodes csv header TRUE sep c
  • 射线和椭球相交精度提高

    我需要提高我的一个功能的精度大气散射 GLSL 片段着色器 https stackoverflow com a 19659648 2521214它计算单射线和轴对齐椭球体之间的交集 这是矿山大气散射着色器的核心功能 旧的原始着色器已打开fl
  • 对 favicon 静态图像的哈希进行摩卡测试失败

    我正在尝试使用 mocha 请求和 SHA1 哈希来编写集成测试 以确认 Express 提供的图标与文件系统上的图标相同 我得到两个不同的哈希值 但不明白为什么 编码有可能改变吗 process env NODE TLS REJECT U
  • ArrayBuffer 到 blob 的转换

    我有一个项目需要在浏览器中显示 djvu 架构 我发现这个老Github 上的库 https github com lebedkin minidjvu js据我了解 它将 djvu 文件转换为 bmp 然后将它们放入 canvas 元素中
  • 如何在 Android 4.2.2 上启用 JavaScript 控制台

    我正在尝试启用 JavaScript 控制台来调试运行 4 2 2 的 Samsung Galaxy S4 上的原生 Android 浏览器中的网页 在 S3 上 我只需在地址栏中输入 about debug 就会出现 但它在 S4 上不起
  • WPF 双向绑定 XML

    我正在努力掌握 WPF 更具体地说 是执行 xml 文件的双向绑定 我应该使用 XMLDataProvider 还是他们的另一个 更好 选择 数据显示正常 但当我更改条目时 更改不会反映在 xml 文件中 The XML
  • Jenkins 中颠覆轮询失败的电子邮件通知

    由于密码更改 我们在 Jenkins 中的一项工作失败了 它的颠覆轮询超过 24 小时 当这种情况发生时 并不是立即显而易见的 除非您注意到作业没有运行并实际检查日志 构建不会失败 因为它从未启动 有没有人找到解决方案来通知 Jenkins
  • Spark中如何获取数组列的所有组合?

    假设我有一个数组列group ids user id group ids 1 5 8 3 1 2 3 2 1 4 Schema root user id integer nullable false group ids array null
  • Composer 未下载包的 src 目录

    我正在使用 Laravel 和 Composer 构建一个网络应用程序 在我的本地计算机上 我在composer json 文件中设置了其要求 并且一切正常 我正在使用 Github 推送到生产服务器 但是 然后我运行composer in
  • 我能否获取 C#/WPF 中绑定对象的 Type()(即使绑定值为 null)?

    我与未知来源有绑定 我所拥有的只是绑定 我没有其他方法来查看绑定对象 我需要找出绑定对象的类型 即使该值为空 这就是我的问题所在 我通过绑定到一个对象然后使用该对象作为获取类型的方式来评估绑定 但即使该值为 null 我也需要知道该类型 例
  • 使用 pytest 时如何组织装置

    固定装置往往较小且可重复使用 鉴于特定装置可以依赖其他装置 pytest fixture def Account db memcache 我想在模块中组织我的装置 并将它们导入到特定的测试文件中 如下所示 例如 from fixtures
  • 从 XP 中的隐藏或剪切窗口复制内容?

    我需要将隐藏窗口 BitBlt 的内容复制到另一个窗口 问题是 一旦我隐藏源窗口 我得到的设备上下文就不再被绘制 你需要的是打印窗口 http msdn microsoft com en us library ms535695 aspx从
  • airodump-ng 使用 python subprocess.Popen 通信方法输出

    嗨 我正在尝试从中获得连续输出airodump ng mon0 因此 我试图读取的输出airodump ng mon0经过一段时间与 Popen communicate 但仍然无法得到任何东西 import subprocess airod
  • 如何在backbone.js中创建基本视图?

    我需要创建一个基本视图 我的所有视图都会扩展 我不太确定何时何地声明这个观点 基本上 我需要注入global variables我的所有模板 但我不会在每个模板中都这样做render 方法 这是我现在的树结构 main js app js
  • MySQL 更新查询 - 竞争条件和行锁定会遵守“where”条件吗? (PHP、PDO、MySQL、InnoDB)

    我正在尝试建立一个先到先得的模型销售页面 我们有 n 个相同类型的物品 我们希望将这 n 个项目分配给前 n 个发出请求的用户 每个项目对应有一个数据库行 当用户按下购买按钮时 系统会尝试查找尚未出售的条目 reservationCompl
  • .用曲线制作动画

    首先看一下 猫需要移动到 a 中的 xcurve 见箭头 当猫击中 x 时 应停留 10 秒 然后猫应返回 o 再次呈曲线状 然后重复 我用这段代码尝试过 function curve cat delay 10000 animate top
  • Webpack 从 /folder/folder.js 而不是 /folder/index.js 导入

    使用 webpack 当我在 blah 中创建一个 index js 时 然后执行import blah from blah 它成功地从index js获取 但是 我的代码编辑器现在充满了名为 index js 的选项卡 并执行 Ctrl
  • 旋转拨盘控制的核心动画困难(非常详细)

    我正在尝试创建一个旋转拨号控件 基本上是一组 6 位数字 它们不断旋转以产生旋转数字计的效果 类似于您的电表 水表 或者可能是扑克机 实际上与现有的 UIPickerView 控件 但具有完全不同的外观和感觉 到目前为止 我几乎可以正常工作
  • PMD - 跳过检查@PostConstruct或@PreDestroy注释的方法

    我有以下课程 import javax annotation PostConstruct public class PmdUnusedMethod private void unusedMethod PostConstruct privat