Eclipse在具有依赖项的项目上重命名功能

时间:2013-03-14 13:40:01

标签: java eclipse svn refactoring rename

我有两个eclipse项目。第二个取决于第一个。当我尝试重命名第一个项目的java类(使用项目浏览器上的java文件上的重命名函数)时,它正确地执行该项目的重构,但它不会改变依赖于它的项目上的任何内容。

在eclipse中是否有一种方法可以告诉重命名函数甚至在与重构的项目链接的项目上行动?感谢帮助。

我的Eclipse版本是Juno。

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

更新2:
我在mliebelt要求澄清后添加更多细节 我的Eclipse版本是Juno,Eclipse Java EE IDE for Web Developers,build id:20120614-1722。

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

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

2 个答案:

答案 0 :(得分:1)

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

  1. 创建两个项目,并使第二个项目依赖于第一个项目。 Java Build Path for <code>Test2</code>
  2. 创建一些源代码,以便您可以重构它。确保Test2中的班级依赖于Test
  3. 中的班级
  4. 从要重命名的方法的上下文菜单中选择。输入方法的新名称,只有Preview选项可用。确保选中Update referencesRename a method clarification dialog
  5. 按下按钮Preview以查看重构将更改哪些类。 enter image description here
  6. 如你所见,它对我有用。请检查您的背景中的不同之处:

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

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


    我已经再次尝试重现错误,但是没有。这是对我有用的(没有包含屏幕截图):

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

答案 1 :(得分:0)

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

我必须使用SVN 来自SVN的Checkout项目,选择我之前创建的存储库。

enter image description here