Java Eclipse-记录并将移动和重命名重构应用到另一个工作区

Java Eclipse-记录并将移动和重命名重构应用到另一个工作区,java,eclipse,refactoring,automated-refactoring,Java,Eclipse,Refactoring,Automated Refactoring,我目前正在一个大型java项目中工作,其中有许多子模块由不同的团队开发。其中一些团队正在构建“框架”,其他团队正在基于该框架构建“应用程序” 当框架人员移动或重命名一个类时,应用程序人员在使用重构框架类的任何地方都会出现编译错误。在Eclipse(Galileo Release)中是否有方法记录更改并更新另一个工作区中的引用 到目前为止,我尝试的是在重命名重构期间创建一个重构脚本,但是当我尝试将该脚本应用到另一个工作区时,它失败了,重构的“重命名类型”(org.eclipse.jdt.ui.re

我目前正在一个大型java项目中工作,其中有许多子模块由不同的团队开发。其中一些团队正在构建“框架”,其他团队正在基于该框架构建“应用程序”

当框架人员移动或重命名一个类时,应用程序人员在使用重构框架类的任何地方都会出现编译错误。在Eclipse(Galileo Release)中是否有方法记录更改并更新另一个工作区中的引用

到目前为止,我尝试的是在重命名重构期间创建一个重构脚本,但是当我尝试将该脚本应用到另一个工作区时,它失败了,
重构的“重命名类型”(org.eclipse.jdt.ui.rename.Type)无法执行,因为它的输入“xxx.TestClass”不存在
。好吧,它不存在了(再也不存在了)好的,但我想要的是,我的项目中所有对
xxx.TestClass
的引用都被更改为
xxx.MyRenamedTestClass
。在Eclipse中有没有办法通过内置功能或现有插件来实现这一点,或者我必须自己编写一个

谢谢你的帮助


编辑:现在我发现“迁移JAR”插件提供了我想要的功能,尽管我们使用Maven而不是Eclipse构建JAR。我现在正在浏览源代码,以找出我可以重用的部分。

回答我自己的问题,在这里得到一些结论

最简单的方法是使用
Migrate JAR文件…
refactoring,它在
META-INF
中使用一个名为
REFACTORINGS.XML
的重构脚本。您可以在Eclipse中使用
Export JAR
自动获得一个包含该文件的JAR。我们使用Maven进行构建,因此只需执行
refactoring->>创建脚本即可。。.
并将其放在罐子中的适当位置


Migrate JAR执行的JDT内部代码为临时源文件夹中的源类创建存根,因此它实际上首先执行重构,然后更新引用。用户永远看不到这些临时文件。

在JAR/class文件中重命名东西更容易,因为名称解析已经完成。重命名在源代码中定义它们是困难的,因为您的工具必须理解Java名称解析规则,而这些规则比您预期的要复杂得多。