【问题标题】:How to prevent usage of certain classes in new code in Maven project?如何防止在 Maven 项目的新代码中使用某些类?
【发布时间】:2023-02-02 17:17:51
【问题描述】:

有一个类 abc.something.MyComponent 被一些遗留代码使用,但我们希望避免在新创建的代码中使用它。

我正在考虑像 maven-enforcer-plugin 这样的东西,它有额外的选项来创建“允许的违规行为”列表,因为不可能立即删除所有用法。

在 Java 项目中添加特定类使用规则的合适方法是什么?

【问题讨论】:

  • 声明它们已弃用,提供替代方案并在未来版本中将其删除。但是,我不会去寻找超越它的方法。似乎有点矫枉过正。只是让开发者知道使用它是他自己的责任
  • 通过 java 编译器(-Xlint:all、-Xlint:-processing)激活适当的警告,您将看到所有弃用。将代码标记为已弃用的建议......最干净的方式......

标签: java maven legacy-code dependency-exclusion


【解决方案1】:

一种方法是使用 Checkstyle 的 IllegalType 检查。使用 Maven Checkstyle plugin 可以轻松地将 Checkstyle 集成到 Maven 构建中。它可以配置为简单地创建报告或在正常构建期间运行其检查,如果发现任何违规行为,even fail the build

下面是一般配置的样子:

<module name="IllegalType">
  <property name="illegalClassNames" value="abc.something.MyComponent"/>
</module>

如果您想抑制遗留代码中特定用途的违规行为,您可以进一步配置“抑制”,如here所示。您可以使用文件模式,也可以将抑制限制为特定检查。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多