在Java中弃用包的最简单方法是什么?

我正在研究新的代码库并将系统迁移到新的框架。

我想弃用许多软件包,只是为了让其他开发人员明白这个软件包中的所有内容都不应该再用于新的开发了。

指示整个包已被弃用的最佳方法是什么?

你自己说过:你想要弃用包的所有内容,而不是包本身。 该包只是一个命名空间,而且不赞成命名空间会有不同的含义 – 比如不再使用这个命名空间了 。 就像不向该命名空间添加任何新项目一样。

在您的情况下,我建议您弃用不应再使用的每个类的每个公共方法(和字段)。 这在现代IDE中变得可见,并且当开发人员想要使用旧的类和方法时会被警告。 您可以查看代码并逐步重构它以消除这些类和方法的依赖关系。

我最近不得不这样做并使用package-info.java文件来弃用包。

http://www.intertech.com/Blog/whats-package-info-java-for/

仅使用包声明将package-info.java文件添加到包中:

 /** * @deprecated As of release 2.0, replaced by {@link com.acme.new.package} */ @Deprecated package com.acme.old.package; 

在Eclipse中,用户从此包导入类的所有位置都将使用弃用警告下划线。

使用AspectJ 。 创建一个在使用包时发出编译器警告的Aspect:

 public aspect DeprecationAspect{ declare warning : call(* foo.bar..*(..)) : "Package foo.bar is deprecated"; } 

(如果使用ant或maven,可以轻松地将AspectJ添加到构建中)

您可以使用@Deprecated创建Package注释并弃用任何包:)

对于后来来的人……
我的解决方案与IDEA“路径替换”

要查找的文本: (public | protected)+(\ s) (abstract) (\ s) (静态) (\ s) (final) (\ s)*(class | interface | enum | Enum)
替换为: @Deprecated \ n \ $ 1 \ $ 3 \ $ 5 \ $ 7 \ $ 9
选项:(选择)正则表达式
目录: {Choose dir}