我有两个 eclipse 项目。第二个依赖于第一个。当我尝试重命名第一个项目的 java 类时(使用项目资源管理器中 java 文件的重命名功能),它正确地进行了该项目的重构,但它不会更改依赖它的项目的任何内容。
eclipse 中有没有一种方法可以告诉重命名函数甚至对链接到重构项目的项目采取行动?感谢帮助。
我的 Eclipse 版本是 Juno。
更新:
忘记提及项目链接到 SVN 存储库。也许它可能是相关的。
更新 2:
我在 mliebelt 要求澄清后添加了更多详细信息。
我的 Eclipse 版本是 Juno,面向 Web 开发人员的 Eclipse Java EE IDE,构建 ID:20120614-1722。
我已经安装了一些插件:subclipse、JRebel、m2e、Eclipse Web Tool Platform。
第二个项目作为 eclipse 中的项目依赖项链接到第一个项目。我在 Java 构建路径的项目选项卡中添加了第一个项目。一切似乎都运行良好,甚至是重命名功能。
然后,我尝试将这两个项目分别放在两个不同的SVN仓库中。我在 SVN 服务器上创建了两个存储库,并在我的机器上安装了客户端 tortoiseSVN 和 eclipse 插件 subclipse。由于我没有成功地直接从 eclipse 导入服务器上的项目,我将项目的文件夹复制到不同的位置,然后从 eclipse 中删除了项目。我使用 tortoiseSVN 导入项目,每个项目都在一个与项目同名的存储库中,然后我将项目导入回 eclipse。为此,我使用了 Eclipse“将现有项目导入工作区”功能,并选择了“将项目复制到工作区”选项。一切似乎都有效,但重命名功能无效。
最佳答案
它确实有效(对我而言),所以这就是我为重现该行为所做的工作。我希望这有助于找到错误。
- 创建两个项目,并使第二个依赖于第一个。
- 创建一些源代码,以便您可以对其进行重构。确保
Test2
中的类依赖于Test
中的类。 - 从您要重命名的方法的上下文菜单中选择。为该方法输入一个新名称,然后才可以使用
Preview
选项。确保选中Update references
。 - 按
Preview
按钮查看重构将更改哪些类。
如您所见,它对我有用。请检查您的上下文有何不同:
- 定义不同的依赖
- 使用不同的重构(可能包含错误)
- ... ?
然后我将这两个项目添加到(本地)存储库(我使用插件 Subversive,这很重要),并重试了重构,它的工作方式相同。什么是“如果项目在 SVN 中则不起作用”?项目必须在 Eclipse 中,不能直接在 Subversion 存储库上进行重构。
我已再次尝试重现错误,但未能成功。这是对我有用的(不包括屏幕截图):
- 从 Eclipse(Indigo 版本)安装了 Java EE
- 从 Eclipse Marketplace 安装了 Subclipse 1.8。
- 像以前一样定义了 2 个项目。
- 使用
Team > Share Project...> SVN > 选择存储库位置 > Finish
将项目添加到不同的 Subversion 存储库中 - 然后我删除了这 2 个项目,并通过执行以下步骤在工作区内实例化它们:
- 转到
SVN Repository Exploring 透视图
。 - 在
SVN Repositories
View 中打开您的存储库位置,然后从菜单Checkout...
中为每个项目选择。 - 项目将在工作区内重新实例化,并且两者之间的依赖关系不会丢失。
- 转到
- 之后,我可以重命名方法,如上所示。
关于java - 具有依赖项的项目的 Eclipse 重命名功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15410939/