Eclipse – 记录并应用移动并将重构重命名为另一个工作区

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

当框架人员移动或重命名一个类时,应用程序人员无论在哪里使用重构的框架类都会遇到编译错误。 EclipseGalileo Release )中是否有一种方法可以记录更改并更新另一个工作区中的引用?

到目前为止我尝试过的是在重命名重构期间创建一个重构脚本,但是当我尝试将该脚本应用到另一个工作区时,它失败了The refactoring 'Rename Type' (org.eclipse.jdt.ui.rename.type) cannot be performed, since its input 'xxx.TestClass" does not exists 。好吧,它不存在(不再)好了,但我想要的是我的项目中xxx.TestClass所有引用都改为xxx.MyRenamedTestClass Eclipse中是否有办法使用内置function或现有插件来完成此操作,还是我必须自己编写一个?

谢谢你的帮助!

编辑:到现在为止我发现“Migrate JAR”-Plugin提供了我正在寻找的function,虽然我们用Maven而不是Eclipse构建我们的JAR。 我现在要查看源代码,找出可以重用的部分。

回答我自己的问题来解决这个问题。

最简单的方法是使用Migrate JAR File...重构,它使用META-INF的重构脚本REFACTORINGS.XML 。 您可以使用Eclipse中的Export JAR自动获取包含此Export JAR 。 我们使用Maven构建,因此只需执行Refactoring->Create Script...并将其放入JAR中的适当位置。

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