4

我有两个 Eclipse 项目。第二个取决于第一个。当我尝试重命名第一个项目的 java 类时(使用项目资源管理器上 java 文件上的 rename 函数),它正确地重构了该项目,但它不会更改项目上依赖它的任何内容。

eclipse中有没有办法告诉重命名功能甚至对与重构的项目相关联的项目起作用?感谢帮助。

我的 Eclipse 版本是 Juno。

更新:
忘了提到项目链接到 SVN 存储库。也许它可能是相关的。

更新 2:
我在 mliebelt 要求澄清后添加了更多详细信息。
我的 Eclipse 版本是 Juno,面向 Web 开发人员的 Eclipse Java EE IDE,内部版本号:20120614-1722。

我已经安装了一些插件:subclipse、JRebel、m2e、Eclipse Web Tool Platform。
第二个项目作为 Eclipse 中的项目依赖项链接到第一个项目。我在 Java Build Path 的项目选项卡中添加了第一个项目。一切似乎都很好,甚至是重命名功能。

然后,我尝试将这两个项目放在两个不同的 SVN 存储库中。我在 SVN 服务器上创建了两个存储库,并在我的机器上安装了客户端 tortoiseSVN 和 eclipse 插件 subclipse。由于我没有成功从 eclipse 中直接导入服务器上的项目,因此我将项目的文件夹复制到了不同的位置,并从 eclipse 中删除了这些项目。我使用 tortoiseSVN 导入项目,每个项目都在一个具有相同项目名称的存储库中,然后我将项目导入回 eclipse。为此,我使用了 eclipse“将现有项目导入工作区”功能,并选择了“将项目复制到工作区”选项。一切似乎都有效,但重命名功能无效。

4

2 回答 2

1

它确实有效(对我来说),所以这就是我为重现该行为所做的工作。我希望这有助于找到错误。

  1. 创建两个项目,并使第二个依赖于第一个。<code>Test2</code> 的 Java 构建路径
  2. 创建一些源代码,以便您可以重构它。确保一个类 inTest2依赖于一个类 in Test
  3. 从要重命名的方法的上下文菜单中选择。在那里输入方法的新名称,然后该Preview选项才可用。确保Update references已选中。重命名方法说明对话框
  4. 按下按钮Preview查看重构将更改哪些类。在此处输入图像描述

如您所见,它对我有用。请检查您的上下文有什么不同:

  • 定义依赖不同
  • 使用不同的重构(可能包含错误)
  • ... ?

然后我将这两个项目添加到(本地)存储库(我使用插件 Subversive,这很重要),并重试了重构,它的工作方式相同。什么是“如果项目在 SVN 中它不起作用”?项目必须在 Eclipse 中,不能直接在 Subversion 存储库上进行重构。


我再次尝试重现该错误,但无法重现。这对我有用(不包括截图):

  1. 从 Eclipse(版本 Indigo)安装 Java EE
  2. 从 Eclipse Marketplace 安装了 Subclipse 1.8。
  3. 像以前一样定义两个项目。
  4. 通过使用将项目添加到不同的 Subversion 存储库Team > Share Project...> SVN > select the repository location > Finish
  5. 然后我删除了 2 个项目,并通过执行以下步骤在工作区中实例化它们:
    • SVN Repository Exploring perspective
    • 在视图中打开SVN Repositories您的存储库位置,然后从菜单中为每个项目选择Checkout...
    • 这些项目将在工作空间内重新实例化,并且两者之间的依赖关系不会丢失。
  6. 之后,我可以重命名一个方法,如上所示。
于 2013-03-14T15:33:20.237 回答
0

Update2 中描述的工作流程中的问题是,当我将项目导入回 Eclipse 时,我使用了“将现有项目导入工作区”功能。

我不得不改用 SVN 的 SVN Checkout Projects,选择我之前创建的存储库。

在此处输入图像描述

于 2013-03-18T10:51:08.867 回答