在 Eclipse 中重命名软件包

2022-09-01 09:26:00

在 Eclipse 的“包资源管理器”中,假设我有一个这样的包列表:

  • 网狗
  • com.cat
  • 青蛙

如果我想将包结构的“com”部分重命名为“animal”,那么我可以选择每个包(上面)并执行重构>重命名。

如果我有很多以“com”开头的软件包,这个过程可能需要一段时间。有没有一种简单的方法来重命名“com”包名称,而不必在包资源管理器中单独重命名每个包?或者在重命名之前从构建路径中删除这些包?

我尝试转到“导航器”窗格,其中它以树结构显示文件夹,但我没有被赋予重命名功能。


答案 1

默认情况下,空父包隐藏在包资源管理器中,如果在包资源管理器中修改筛选器...以取消选中“空父包”(第二个屏幕截图中自上而上的第三个),你将能够看到空包。

package explorer filters

filters view
(资料来源:eclipse.org

然后,您可以重命名 com 包并选中“重命名子包”选项以强制重命名所有子包。

rename package
(资料来源:eclipse.org

然后,当您完成重新应用过滤器以再次隐藏所有这些空包时。


答案 2

看起来当前的JDT API(Java开发工具,包含包重新导航的部分)一次只重命名一个包(而不是子包)。

看:

重构具有子包的包时,JDT 会再次创建子包,而不仅仅是重命名父包

我们需要一个API,不仅可以重命名片段,还可以重命名所有子包。
实际上,实现将重命名包片段的文件夹,然后更新所有包含的 CU(包括子包中的 CU)中的包声明。IPackageFragment

因此,它当时是“设计使然”的(eclipse 3.5),但是记录了增强功能,并将在3.6中考虑在内。

注意:自2005年以来,“缺乏功能”已被注意到!

我正在测试新的分层包重命名,并且有两个具有相同包结构的源文件夹。要重命名两者中的包,我必须执行两次相同的操作。
如果能得到一个提示,并被问及是否也应该将包重命名应用于其他源文件夹,那就太好了。


推荐