4

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

当框架人员移动或重命名一个类时,应用程序人员在使用重构的框架类的任何地方都会遇到编译错误。Eclipse ( Galileo 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 中有没有办法使用内置功能或现有插件来做到这一点,还是我必须自己编写一个?

谢谢你的帮助!

编辑:到目前为止,我发现“迁移 JAR”-Plugin 提供了我正在寻找的功能,尽管我们使用 Maven 而不是 Eclipse 构建我们的 JAR。我现在正在浏览源代码以找出我可以重用的部分。

4

1 回答 1

1

回答我自己的问题以在这里结束。

最简单的方法是使用重构,它使用调用Migrate JAR File...中的重构脚本。您可以通过在 Eclipse 中使用自动获取包含此内容的 JAR 。我们使用 Maven 构建,因此只需将其放入 JAR 中的适当位置即可。META-INFREFACTORINGS.XMLExport JARRefactoring->Create Script...

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

于 2012-06-12T11:11:51.017 回答